1d9e1548437c7a6e1e504c2f8cbc0401c4309bec
[mono.git] / mono / metadata / ChangeLog
1 2009-07-11  Zoltan Varga  <vargaz@gmail.com>
2
3         * object-internals.h (MonoIntPtr): New structure describing a boxed
4         IntPtr.
5
6         * object.c (mono_runtime_invoke_array): Handle ptr arguments and
7         returns. Fixes #519953.
8
9         * marshal.c (mono_marshal_get_runtime_invoke): Handle pointer returns.
10
11 2009-07-09  Mark Probst  <mark.probst@gmail.com>
12
13         * class-internals.h, generic-sharing.c: New RGCTX info type for
14         getting a remoting invoke with check wrapper.
15
16 2009-07-07  Geoff Norton  <gnorton@novell.com>
17
18         * icall-def.h: Fix the enable-minimal build.
19
20 2009-07-07 Rodrigo Kumpera  <rkumpera@novell.com>
21
22         * object-internals.h: Add MonoReflectionDerivedType.
23
24         * reflection.c: Implement support for PointerType.
25         Fixed tons of warnings.
26
27 2009-07-07 Rodrigo Kumpera  <rkumpera@novell.com>
28
29         * object-internals.h: Add MonoReflectionByRefType.
30
31         * reflection.c: Implement support for ByRefType.
32
33 2009-07-07 Rodrigo Kumpera  <rkumpera@novell.com>
34
35         * icall-def.h: Add System.Reflection.Emit.DerivedType::create_unmanaged_type.
36
37         * object-internals.h: Add MonoReflectionArrayType and
38         mono_reflection_create_unmanaged_type.
39
40         * reflection.c: Implement support for ArrayType.
41
42 2009-07-07 Rodrigo Kumpera  <rkumpera@novell.com>
43
44         * metadata-verify.c (is_valid_method_header): Parse EH block
45         flags correctly.
46
47 2009-07-03  Mark Probst  <mark.probst@gmail.com>
48
49         * sgen-gc.c (finish_gray_stack): Set the to_space pointer after
50         processing the disappearing links, and process disappearing links
51         in a loop until no new objects are copied.
52
53 2009-07-03  Mark Probst  <mark.probst@gmail.com>
54
55         * object.c (handle_enum): Invoke the write barrier when copying
56         value type instances.
57
58         * sgen-gc.c: Register remsets for unmanaged write barriers only
59         when the address written to is actually on the heap.  This makes
60         set_value() in object.c work without requiring that the result be
61         on the heap.
62
63 2009-07-02 Rodrigo Kumpera  <rkumpera@novell.com>
64
65         The runtime wrappers are all bound to a given type that must
66         exist in the same image. For regular images we use the <Module>
67         type, which is required to exist for all images.
68
69         The <Module> type can't be used for dynamic images because it
70         might not exist at the time the wrapper is required, so we create
71         a synthetic type to use instead.
72
73         The current code works because of the 2 stage setup of MonoClass,
74         but once this is gone it will no longer work.
75
76         * icall-def.h: Add ModuleBuilder::set_wrappers_type.
77
78         * metadata-internals.h (MonoDynamicImage): Add wrappers_type.
79
80         * object-internals.h: Export mono_image_set_wrappers_type icall
81         as part of the internal API.
82
83         * marshal.c (get_wrapper_target_class): If the image is dynamic,
84         use MonoDynamicImage::wrappers_type instead of the <Module> type.
85
86         reflection.c: Add mono_image_set_wrappers_type qhixh sets the dynamic
87         image wrappers_type to the provided value.
88
89 2009-07-01 Rodrigo Kumpera  <rkumpera@novell.com>
90
91         * appdomain.c (deregister_reflection_info_roots): No need
92         to use the image lock here.
93
94 2009-07-02  Mark Probst  <mark.probst@gmail.com>
95
96         * sgen-gc.c (collect_nursery): Also scan from write-barrier roots.
97
98 2009-06-29  Zoltan Varga  <vargaz@gmail.com>
99
100         * threads.c: Store the thread start argument in a hash table instead of
101         registering it as a root, as libgc doesn't support unregistering roots
102         under windows, leading to 'too many root sets' errors when many threads
103         are created.
104
105         * gc.c (mono_gc_run_finalize): Avoid finalizing dynamic methods during
106         shutdown, they can still be referenced by the other dying objects.
107         Fixes #514506.
108
109 2009-06-27 Gonzalo Paniagua Javier <gonzalo@novell.com>
110
111         * socket-io.c: DontLinger does not allow LingerOptions.
112
113 2009-06-26 Rodrigo Kumpera  <rkumpera@novell.com>
114
115         * metadata-verify.c: The spec doesn't mention that it's possible to add
116         custom attribute to a generic parameter. Fixed.
117
118 2009-06-26 Rodrigo Kumpera  <rkumpera@novell.com>
119
120         * class.c (inflate_generic_type): Don't crash while trying to output a message
121         on why we're aborting.
122
123 2009-06-26 Gonzalo Paniagua Javier <gonzalo@novell.com>
124
125         * socket-io.c: DontLinger can take an int or a boolean too.
126
127 Fri Jun 26 17:00:04 CEST 2009 Paolo Molaro <lupus@ximian.com>
128
129         * gc.c: check for a null argument to SuppressFinalize () and
130         ReRegisterForFinalize ().
131
132 2009-06-26 Rodrigo Kumpera  <rkumpera@novell.com>
133
134         * loader.c (method_from_methodspec): Call into the verifier to check
135         the signature.
136
137         * metadata-verify.c: Addmono_verifier_verify_methodspec_signature.
138
139         * verify-internals.h: Export mono_verifier_verify_methodspec_signature as
140         part of the internal API.
141
142 2009-06-25 Rodrigo Kumpera  <rkumpera@novell.com>
143
144         * metadata.c (mono_type_create_from_typespec): Call into the verifier to check
145         the signature.
146
147         * metadata-verify.c: Add mono_verifier_verify_typespec_signature.
148
149         * verify-internals.h: Export mono_verifier_verify_typespec_signature as
150         part of the internal API.
151
152 2009-06-25 Rodrigo Kumpera  <rkumpera@novell.com>
153
154         * metadata.c (mono_metadata_parse_mh_full): Call into the verifier to check
155         the signature.
156
157         * metadata-verify.c: Add mono_verifier_verify_standalone_signature. Fix
158         blob verification.
159
160         * verify-internals.h: Export mono_verifier_verify_memberref_signature as
161         part of the internal API.
162
163 2009-06-25 Rodrigo Kumpera  <rkumpera@novell.com>
164
165         * metadata-verify.c: Use is_valid_blob_object to verify blob validity
166         when doing basic verification. 
167
168         This check must be done since the runtime peeks into signatures in much
169         more places than it does decoding so it makes sense to ensure that all
170         pointers to blob objects are well formed.
171
172 2009-06-25 Rodrigo Kumpera  <rkumpera@novell.com>
173
174         * metadata-verify.c (is_valid_blob_object): Add extra minsize argument.
175         Use proper overflow dectection. Fix usage of it.
176
177 2009-06-25 Rodrigo Kumpera  <rkumpera@novell.com>
178
179         * loader.c (field_from_memberref): Call into the verifier to check
180         the signature.
181
182         * loader.c (mono_method_get_signature_full): Same.
183
184         * loader.c (method_from_memberref): Same.
185
186         * metadata-verify.c: Add mono_verifier_verify_memberref_signature.
187
188         * verify-internals.h: Export mono_verifier_verify_memberref_signature as
189         part of the internal API.
190
191 2009-06-25  Mark Probst  <mark.probst@gmail.com>
192
193         * threadpool.c (mono_thread_pool_add): If the domain is unloading
194         or unloaded, still return an AsyncResult, but don't add it to the
195         threadpool.
196
197 2009-06-25 Gonzalo Paniagua Javier <gonzalo@novell.com>
198
199         * threads.c: fix missing colon when DEBUG is defined.
200
201 2009-06-25  Mark Probst  <mark.probst@gmail.com>
202
203         * threadpool.c: Don't add new calls to a threadpool if the domain
204         of the call is unloading or unloaded.  When dequeuing a job, null
205         the reference in the queue.
206
207 2009-06-25  Mark Probst  <mark.probst@gmail.com>
208
209         * sgen-gc.c (null_link_in_range): Add the dislink for the old
210         generation if an object was moved.
211
212 2009-06-25  Sylvain Dupont <duposyl@gmail.com>
213
214         * cominterop.h cominterop.c marshal.c: Added support for marshalling out 
215           parameters of type SAFEARRAY[VARIANT].
216
217         * reflection.c (encode_marshal_blob): Properly generate element type
218           (SafeArraySubType marshal attribute option).
219
220         Code is contributed under MIT/X11 license.
221
222 Thu Jun 25 15:48:09 CEST 2009 Paolo Molaro <lupus@ximian.com>
223
224         * reflection.c: in mono_method_clear_object () really ensure all the
225         objects are removed.
226
227 2009-06-24 Rodrigo Kumpera  <rkumpera@novell.com>
228
229         * loader.c (mono_method_signature): Call into the verifier to check
230         the method signature.
231
232         * metadata-verify.c (verify_method_table): Move signature verification
233         to verify_method_table_full.
234
235         * metadata-verify.c: Add mono_verifier_verify_method_signature.
236
237         * verify-internals.h: Export mono_verifier_verify_method_signature as
238         part of the internal API.
239
240 2009-06-24 Rodrigo Kumpera  <rkumpera@novell.com>
241
242         * loader.c (mono_method_get_header): Call into the verifier to
243         check the method header.
244
245         * metadata-verify.c: Add mono_verifier_verify_method_header.
246
247         * verify-internals.h: Export mono_verifier_verify_method_header as
248         part of the internal API.
249
250 2009-06-24 Rodrigo Kumpera  <rkumpera@novell.com>
251
252         * class.c (mono_class_find_enum_basetype): Call into the verifier to
253         check the field signature. Replace an assert with an explicit check.
254
255         * class.c (mono_class_setup_fields): Call into the verifier to check
256         the field signature.
257
258         * metadata-verify.c: Add mono_verifier_verify_field_signature.
259
260         * verify-internals.h: Export mono_verifier_verify_field_signature as
261         part of the internal API.
262
263 2009-06-24 Rodrigo Kumpera  <rkumpera@novell.com>
264
265         * class.c (mono_class_find_enum_basetype): Simplify this function
266         by moving code outside of the loop and not decoding static fields.
267
268 2009-06-24 Rodrigo Kumpera  <rkumpera@novell.com>
269
270         * metadata-verify.c (verify_typedef_table): Check the extends
271         token here. Move to here a flags check from verify_typedef_table_full.
272
273 2009-06-24  Zoltan Varga  <vargaz@gmail.com>
274
275         * metadata-verify.c (is_valid_method_header): Fix a warning.
276
277         * metadata-internals.h (MonoImage): Remove the unused 
278         static_rgctx_invoke_wrapper_cache.
279
280         * image.c marshal.c: Ditto.
281
282 2009-06-23 Rodrigo Kumpera  <rkumpera@novell.com>
283
284         * image.c (do_mono_image_load): Enable table data verification.
285
286 2009-06-23 Rodrigo Kumpera  <rkumpera@novell.com>
287
288         * metadata-verify.c (is_valid_constant): Fix nullref check.
289
290 2009-06-23 Rodrigo Kumpera  <rkumpera@novell.com>
291
292         * metadata-verify.c (is_valid_constant): Fix string bounds check.
293
294 2009-06-22  Mark Probst  <mark.probst@gmail.com>
295
296         * sgen-gc.c: Managed allocation with pthreads TLS.
297
298         * threads.c, threads-types.h: Functions for the JIT to tell the
299         runtime whether it supports the MONO_TLS opcode.
300
301 2009-06-22 Rodrigo Kumpera  <rkumpera@novell.com>
302
303         * metadata-verify.c (verify_param_table): Fix a crash for assemblies
304         without methods.
305
306 2009-06-22 Rodrigo Kumpera  <rkumpera@novell.com>
307
308         * metadata-verify.c (is_valid_constant): Fix the string length check.
309         Use safe overflow checking. Add decent error messages.
310
311 2009-06-22 Rodrigo Kumpera  <rkumpera@novell.com>
312
313         * metadata-verify.c: Move remaininh blob checks to the offline
314         verification path.
315
316 2009-06-22 Rodrigo Kumpera  <rkumpera@novell.com>
317
318         * metadata-verify.c: Move more blob checks to the offline verification
319         path.
320
321 2009-06-22  Bill Holmes  <billholmes54@gmail.com>
322
323         * object-internals.h : Adding interrupt_on_stop field.
324
325         * threads.c (mono_thread_request_interruption) : On Windows exit the
326           thread if interrupt_on_stop is set.
327
328         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Accept_internal) :
329          Removing old interrupt logic and setting the interrupt_on_stop for the
330          thread when calling accept.
331
332         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Receive_internal) :
333          setting the interrupt_on_stop for the thread when calling accept.
334
335         Contributed under MIT/X11 license.
336
337 2009-06-20  Martin Baulig  <martin@ximian.com>
338
339         * mono-debug.h (MONO_DEBUGGER_MINOR_VERSION): Bump to 3.
340
341 2009-06-21  Zoltan Varga  <vargaz@gmail.com>
342
343         * appdomain.c (mono_try_assembly_resolve): Don't call managed code when
344         running in no-exec mode.
345
346 2009-06-19 Rodrigo Kumpera  <rkumpera@novell.com>
347
348         * metadata-verify.c (verify_method_table): Move header
349         checking to verify_method_table_full.
350
351         * metata-verify.c (mono_verifier_verify_full_table_data):
352         Call verify_method_table_full.
353
354 2009-06-19 Rodrigo Kumpera  <rkumpera@novell.com>
355
356         * metadata-verify.c (verify_field_table): Move signature
357         checking to verify_field_table_full.
358
359         * metata-verify.c (mono_verifier_verify_full_table_data):
360         Call verify_field_table_full.
361
362 2009-06-19 Rodrigo Kumpera  <rkumpera@novell.com>
363
364         * metadata-verify.c (verify_typedef_table): Move remaining
365         stuff to verify_typedef_table_full.
366
367 2009-06-19 Rodrigo Kumpera  <rkumpera@novell.com>
368
369         * metadata-verify.c: Kill is_corlib from VerifyContext.
370         It is only used by the offline mode.
371         So we better remove it from the runtime path.
372
373 2009-06-19 Rodrigo Kumpera  <rkumpera@novell.com>
374
375         * metadata-verify.c: Add new mono_verifier_verify_full_table_data
376         function that perform the offline metadata verification steps.
377
378         * metadata-verify.c (verify_typedef_table): Move some checks to
379         verify_typedef_table_full and make it been called by new function
380         mono_verifier_verify_full_table_data.
381
382         * pedump.c: Call mono_verifier_verify_full_table_data.
383
384         * verify-internals.h: Export mono_verifier_verify_full_table_data as
385         part of the internal API.
386
387 2009-06-19 Rodrigo Kumpera  <rkumpera@novell.com>
388
389         * metadata-verify.c (typedef_is_system_object): Fix System.Object
390         check.
391
392         * metadata-verify.c (verify_implmap_table): Fix implmap invalid
393         flags bits. SupportLastError was confused as bit 7 instead of 6.
394
395         * metadata-verify.c (verify_implmap_table): Fix import scope verification
396         to check against the module ref table instead of module.
397
398         * metadata-verify.c (verify_implmap_table): Fix corlib check.
399
400         * pedump.c: Call mono_image_load_names.
401
402 2009-06-19 Rodrigo Kumpera  <rkumpera@novell.com>
403
404         * image.c: Extract mono_image_load_names from do_mono_image_load.
405
406         * metadata-internals.h: Export mono_image_load_names as part of
407         the internal API.
408         
409 2009-06-19  Zoltan Varga  <vargaz@gmail.com>
410
411         * metadata.c (mono_metadata_cleanup): Free the generic method cache
412         first, as it could reference data in the other caches.
413
414 2009-06-18 Rodrigo Kumpera  <rkumpera@novell.com>
415
416         * metadata-verify.c: Finished with method header verification.
417
418 2009-06-18 Rodrigo Kumpera  <rkumpera@novell.com>
419
420         * metadata-verify.c: Added more header verification code.
421         Now only EH clauses are missing.
422
423 2009-06-17  Zoltan Varga  <vargaz@gmail.com>
424
425         * marshal.c (get_runtime_invoke_type): Don't share primitive types
426         for return values.
427
428 2009-06-16 Rodrigo Kumpera  <rkumpera@novell.com>
429
430         * metadata-verify.c: Initial method header verification.
431
432 2009-06-16 Rodrigo Kumpera  <rkumpera@novell.com>
433
434         * metadata-verify.c (verify_import_table): The IAT contents
435         might end been patched by the windows DL when running with
436         coree enabled.
437
438 2009-06-15 Rodrigo Kumpera  <rkumpera@novell.com>
439
440         * class.c (mono_class_from_typeref): If the enclosing type is not
441         found return null instead of crashing. Fixes #508487.
442
443 2009-06-15  Atsushi Enomoto  <atsushi@ximian.com>
444
445         * normalization-tables.h : updated to the latest unicode charcter
446           data.
447         * appdomain.c : bump corlib version.
448
449 2009-06-14  Zoltan Varga  <vargaz@gmail.com>
450
451         * class.c (mono_class_from_name): Fix support for assembly references
452         in the EXPORTEDTYPE table. Fixes #511704.
453
454 2009-06-13  Geoff Norton  <gnorton@novell.com>
455
456         * domain.c: Ensure that mono_domain_assembly_open actually opens the
457         assembly in the target domain.
458
459 2009-06-12  Robert Jordan  <robertj@gmx.net>
460
461         * cominterop.c (cominterop_get_ccw): Increment mspec's SizeParamIndex
462         because "this" of the managed signature has become an
463         ordinary parameter in the unmanaged signature.
464
465 2009-06-12  Zoltan Varga  <vargaz@gmail.com>
466
467         * class-internals.h (struct _MonoGenericContainer): Add an 'image'
468         field for owner-less generic containers.
469
470         * reflection.c (mono_reflection_initialize_generic_parameter): Set the
471         image field of the owner-less generic containers created here.
472
473         * metadata.c (mono_metadata_load_generic_params): Ditto, the
474         contain is ownerless until the caller sets its owner.
475
476         * metadata.c (type_in_image): Handle owner-less generic containers
477         correctly.
478         
479 2009-06-11  Zoltan Varga  <vargaz@gmail.com>
480
481         * image.c (mono_image_close): Support debug_assembly_unload for
482         dynamic images too.
483
484 2009-06-11 Andrés G. Aragoneses  <aaragoneses@novell.com>
485
486         * class.c: Fix some typos in comments.
487
488 2009-06-11  Zoltan Varga  <vargaz@gmail.com>
489
490         * reflection.c (add_custom_modifiers): Avoid reading invalid memory.
491
492         * threads.c (mono_thread_execute_interruption): Avoid creating the
493         abort exception object while holding the synch_cs lock.
494
495 2009-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
496
497         * metadata-verify.c: Verify basic cattr content.
498
499 2009-06-10  Zoltan Varga  <vargaz@gmail.com>
500
501         * reflection.c (add_exported_type): Don't set the FORWARDER flag on
502         nested types.
503         
504         * reflection.c (mono_image_fill_export_table_from_type_forwarders): Add
505         support for nested types. Fixes #511704.
506
507 2009-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
508
509         * metadata-verify.c: Verify methodspec signatures.
510
511 2009-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
512
513         * metadata-verify.c: Verify typespec signatures.
514
515 2009-06-09  Zoltan Varga  <vargaz@gmail.com>
516
517         * metadata.c (free_inflated_method): Call 
518         mono_marshal_free_inflated_wrappers (), which was missed earlier.
519
520 2009-06-08  Miguel de Icaza  <miguel@novell.com>
521
522         * mono-config.c: Small change to report the PPC64/ILP32 model.
523
524 2009-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
525
526         * metadata-verify.c (parse_type): Check szarray.
527
528 2009-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
529
530         * metadata-verify.c (parse_type): Check fnptr.
531
532 2009-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
533
534         * metadata-verify.c (parse_type): Check generic instances.
535
536 2009-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
537
538         * metadata-verify.c (parse_type): Check array shape.
539
540 2009-06-05  Robert Jordan  <robertj@gmx.net>
541
542         * class.c (mono_class_create_from_typedef): Check only for
543         mscorlib's System.Array.
544
545 2009-06-04 Rodrigo Kumpera  <rkumpera@novell.com>
546
547         * metadata-verify.c (parse_type): Check pointer, class/valuetype
548         and generic params. 
549
550         * metadata-verify.c (parse_field): Check the signature.
551
552 2009-06-04 Rodrigo Kumpera  <rkumpera@novell.com>
553
554         * metadata-verify.c: Implement locals signature check.
555
556 2009-06-04  Marek Safar  <marek.safar@gmail.com>
557
558         * domain.c: Add .NET 4.0 Beta 1 version.
559
560 2009-06-04  Bill Holmes  <billholmes54@gmail.com>
561
562         * cominterop.c (cominterop_ccw_queryinterface): Fix for bug 499566.
563           For QueryInterface on CCWs consider the base class
564           interfaces as well.
565
566         Code is contributed under MIT/X11 license.
567
568 2009-06-04  Zoltan Varga  <vargaz@gmail.com>
569
570         * wrapper-types.h: Delete STATIC_RGCTX_INVOKE.
571
572         * marshal.c (mono_marshal_ret_static_rgctx_invoke): Remove, no longer
573         used.
574
575         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Avoid
576         adding a static-rgctx invoke wrapper, it is done by the runtime trampolines.
577
578         * generic-sharing.c (inflate_other_data): Ditto.
579         
580 2009-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
581
582         * metadata-verify.c: Implement property signature check.
583
584 2009-06-04  Mark Probst  <mark.probst@gmail.com>
585
586         * sgen-gc.h: Register saving support for PPC.
587
588 2009-06-04  Mark Probst  <mark.probst@gmail.com>
589
590         * sgen-gc.c: Fixed a pthread TLS screwup.
591
592 2009-06-04  Mark Probst  <mark.probst@gmail.com>
593
594         * sgen-gc.c: Do TLS using pthread API if __thread keyword is not
595         supported.
596
597 2009-06-04  Mark Probst  <mark.probst@gmail.com>
598
599         * sgen-gc.c: Disable TLA and managed allocation if the __thread
600         keyword is not supported.
601
602 2009-06-04  Zoltan Varga  <vargaz@gmail.com>
603
604         * marshal.c metadata.c: Applied patch from Ulrich Weigand 
605         <uweigand@de.ibm.com>: Free the wrappers of inflated generic methods when
606         the inflated method is freed. Fixes #508389.
607
608         The code is contributed under the MIT/X11 license.
609         
610 2009-06-03  Zoltan Varga  <vargaz@gmail.com>
611
612         * marshal.c (get_wrapper_target_class): New helper function.
613         (mono_marshal_get_runtime_invoke): Place runtime-invoke wrappers into
614         the <Module> class of the image. Fixes #509049.
615
616 2009-06-01 Rodrigo Kumpera  <rkumpera@novell.com>
617
618         * threads.c (ves_icall_System_Threading_Thread_Sleep_internal):
619         Check if the thread was interrupted and proccess it straight away.
620         Makes abortion much more responsive.
621
622 2009-06-01 Rodrigo Kumpera  <rkumpera@novell.com>
623
624         * threads.c (mono_thread_execute_interruption): Use atomic cas with
625         MonoThread::interruption_requested to match it's counterpart.
626
627         Fixes a hang in abort-stress-1 on a 2 core x86.
628
629         * threads.c (ves_icall_System_Threading_Thread_GetAbortExceptionState):
630         Fix warning.
631
632 2009-06-01 Rodrigo Kumpera  <rkumpera@novell.com>
633
634         Change MonoImage::name_cache to be protected by the image lock
635         instead of the loader lock.
636
637         * appdomain.c (deregister_reflection_info_roots): Protect access
638         to name_cache.
639
640         * class.c (mono_image_init_name_cache): Change from the loader lock
641         to the image lock. Check if the cache wasn't already created.
642
643         * class.c: Change from the loader to the image lock.
644
645         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Fix
646         the code to hold the image lock while iterating over name_cache and
647         not go into mono_array_new holding it.
648
649         * metadata-internals.h: Add a comment about this change.
650
651 2009-06-01 Rodrigo Kumpera  <rkumpera@novell.com>
652
653         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
654         Under the 2.0 profile raise the loader error.
655
656         Fixes #508532.
657
658 2009-06-01 Rodrigo Kumpera  <rkumpera@novell.com>
659
660         * marshal.c (mono_marshal_get_runtime_invoke): Emit the right kind
661         of ldind opcode for generic instances so we don't fail for direct wrappers.
662         This only affect direct calls.
663
664 2009-05-31  Zoltan Varga  <vargaz@gmail.com>
665
666         * reflection.c (create_dynamic_mono_image): Fix warnings.
667
668         * generic-sharing.c (other_info_equal): Ditto.
669         
670 2009-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
671
672         * metadata-verify.c: Implement field signature check.
673
674 2009-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
675
676         * metadata-verify.c: Implement standalone signature check.
677
678 2009-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
679
680         * metadata-verify.c: Implement methodref signature check.
681
682 2009-05-28  Zoltan Varga  <vargaz@gmail.com>
683
684         * object-internals.h (MonoRuntimeCallbacks): New structure containing
685         callbacks supplied by the runtime.
686
687         * object.c (mono_install_callbacks): New internal function to install
688         the callbacks.
689
690         * object.c (mono_create_ftnptr): Move the implementation of this to
691         mini/.
692
693         * object.c (mono_get_addr_from_ftnptr): Ditto.  
694
695 2009-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
696
697         * metadata-verify.c (parse_return_type): Proper byref check.
698         * metadata-verify.c (is_valid_method_signature): Check for zero arity
699         generic signatures and method params.
700
701 2009-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
702
703         * metadata-verify.c (decode_signature_header): Fix bounds check.
704
705         * metadata-verify.c (parse_custom_mods): Check custom mods.
706
707         * metadata-verify.c (parse_type): Do initial basic verification
708         of valid values.
709         
710         * metadata-verify.c (is_valid_method_signature): Parse the generic
711         param count.
712
713 2009-05-26 Rodrigo Kumpera  <rkumpera@novell.com>
714
715         * icall.c (ves_icall_Type_GetMethodsByName): Virtual methods should be
716         discarded based on their most specific definition so we set the method_slots
717         array before checking if the method is acceptable or not.
718
719         Fixes #506757.
720
721 2009-05-26  Mark Probst  <mark.probst@gmail.com>
722
723         * icall.c: Free the old array when resizing a mono_ptr_array.
724
725 2009-05-26  Mark Probst  <mark.probst@gmail.com>
726
727         * reflection.c (create_dynamic_mono_image): Use mono_object_hash()
728         for the hashes whose keys are managed objects.
729
730 2009-05-26  Mark Probst  <mark.probst@gmail.com>
731
732         * object-internals.h, threads.c: Set the execution context on
733         thread start here, not in corlib.
734
735         * appdomain.c: Bump corlib version.
736
737 2009-05-27  Martin Baulig  <martin@ximian.com>
738
739         * mono-debug.c (mono_debug_init): Use `MONO_DEBUG_FORMAT_DEBUGGER'
740         if `_mono_debug_using_mono_debugger' is set to make things work
741         properly when embedding Mono.
742
743 2009-05-25 Rodrigo Kumpera  <rkumpera@novell.com>
744
745         * class.c (mono_class_setup_fields): Don't mark simd types as having
746         16 bytes alignment as the whole runtime doesn't support.
747
748 2009-05-25 Rodrigo Kumpera  <rkumpera@novell.com>
749
750         * metadata-verify.c (safe_read): Use endian safe read macros.
751
752 2009-05-25  Zoltan Varga  <vargaz@gmail.com>
753
754         * object.c (mono_create_ftnptr): Don't allocate from the code mempool since
755         it is read-only when using full aot.
756
757 2009-05-22 Rodrigo Kumpera  <rkumpera@novell.com>
758
759         * metadata-verify.c (is_valid_method_signature): Verify parts
760         of the return type. Provide an error message in case of failure.
761
762 2009-05-22 Rodrigo Kumpera  <rkumpera@novell.com>
763
764         * metadata-verify.c (is_valid_method_signature): Verify the call conv.
765
766 2009-05-22 Rodrigo Kumpera  <rkumpera@novell.com>
767
768         * metadata-verify.c: Include the size prefix in the bounds check.
769
770 2009-05-22  Miguel de Icaza  <miguel@novell.com>
771
772         * icall.c: Remove warnings.
773
774         * mono-config.c: Allow for CONFIG_CPU to be set in config.h and
775         prevent auto-detection based on GCC defines.
776
777         Add PS3
778
779         * metadata-verify.c: Do not include signal.h
780
781         * generic-sharing.c, marshal.c: Add returns to avoid some warning
782         messages.  Not sure why the g_assert_not_reached is not enough to
783         quiet the compiler.
784         
785
786         * appdomain.c: Remove code that is not used when
787         DISABLE_SHADOW_COPY is set.
788
789         * image.c: use g_getenv
790
791 2009-05-21  Miguel de Icaza  <miguel@novell.com>
792
793         * reflection.c: Remove code that it not used with
794         DISABLE_REFLECTION_EMIT is defined.
795
796 2009-05-21  Zoltan Varga  <vargaz@gmail.com>
797
798         * marshal.c (mono_marshal_get_runtime_invoke): Share more runtime
799         invoke wrappers.
800
801 2009-05-20  Miguel de Icaza  <miguel@novell.com>
802
803         * socket-io.c
804         (ves_icall_System_Net_Sockets_Socket_Available_internal): Remove
805         the ifdef here and instead put that on io-layer
806
807 2009-05-19 Rodrigo Kumpera  <rkumpera@novell.com>
808
809         * metadata-verify.c: Verify the generic param constraint table.
810
811 2009-05-19 Rodrigo Kumpera  <rkumpera@novell.com>
812
813         * metadata-verify.c (verify_generic_param_table): Fix
814         thinko on the valid flags bits for generic params.
815
816 2009-05-19 Rodrigo Kumpera  <rkumpera@novell.com>
817
818         * metadata-verify.c: Verify the methodspec table.
819
820 2009-05-19 Rodrigo Kumpera  <rkumpera@novell.com>
821
822         * metadata-verify.c: Verify the generic param table.
823
824 2009-05-19  Mark Probst  <mark.probst@gmail.com>
825
826         * sgen-gc.c: Store and use the count with REMSET_VTYPE.
827
828 2009-05-19  Mark Probst  <mark.probst@gmail.com>
829
830         * sgen-gc.c: Use generation enum more consistently and use the
831         correct generation in mono_gc_register_for_finalization().
832
833 2009-05-18 Rodrigo Kumpera  <rkumpera@novell.com>
834
835         * metadata-verify.c: Verify the nested class table.
836
837 2009-05-18 Rodrigo Kumpera  <rkumpera@novell.com>
838
839         * metadata-verify.c: Verify the manifest resource table.
840
841 2009-05-17  Zoltan Varga  <vargaz@gmail.com>
842
843         * debug-helpers.c (dis_one): Add little-endian support for ldstr.
844
845 2009-05-16  Zoltan Varga  <vargaz@gmail.com>
846
847         * class.c (mono_class_get_vtable_entry): Avoid adding static-rgctx
848         wrappers, this is now done in the JIT.
849         
850         * class.c (mono_set_generic_sharing_supported): New internal function.
851         (mono_class_generic_sharing_enabled): Move the #ifdef stuff to the JIT.
852
853 2009-05-15 Rodrigo Kumpera  <rkumpera@novell.com>
854
855         * metadata-verify.c: Verify the exported type table.
856
857 2009-05-15 Rodrigo Kumpera  <rkumpera@novell.com>
858
859         * pedump.c (main): Fake an assembly for netmodules to make the verifier happy.
860
861 2009-05-15 Rodrigo Kumpera  <rkumpera@novell.com>
862
863         * metadata-verify.c: Verify the file table.
864
865 2009-05-15 Rodrigo Kumpera  <rkumpera@novell.com>
866
867         * metadata-verify.c (verify_assembly_table): Fix an error message.
868
869         * metadata-verify.c: Verify the assemblyref table.
870
871 2009-05-15 Rodrigo Kumpera  <rkumpera@novell.com>
872
873         * metadata-verify.c (verify_assembly_table): Fix the valid
874         bits mask for flags.
875
876 2009-05-15  Zoltan Varga  <vargaz@gmail.com>
877
878         * debug-helpers.c (mono_method_full_name): Print generic parameters of
879         generic methods as well.
880
881 2009-05-15  Geoff Norton  <gnorton@novell.com>
882
883         * gc.c: MachO/Darwin supports and uses semaphores fine for this 
884         use-case and is significantly more performant than the wapi layer.
885
886 2009-05-13 Rodrigo Kumpera  <rkumpera@novell.com>
887
888         * metadata-verify.c: Verify the assembly table.
889
890 2009-05-13 Rodrigo Kumpera  <rkumpera@novell.com>
891
892         * metadata-verify.c: Fix rows limit check.
893
894 2009-05-13 Rodrigo Kumpera  <rkumpera@novell.com>
895
896         * metadata-verify.c: Verify the fieldrva table.
897
898 2009-05-13  Mark Probst  <mark.probst@gmail.com>
899
900         * sgen.c: Speed up weak links and finalizers by grouping them by
901         generation.
902
903 2009-05-13  Mark Probst  <mark.probst@gmail.com>
904
905         * marshal.c (delegate_hash_table_add): When overwriting an entry,
906         free the old GCHandle (only applies to SGen).
907
908 2009-05-13  Zoltan Varga  <vargaz@gmail.com>
909
910         * loader.c (mono_get_method_from_token): Avoid the expensive call to
911         mono_metadata_load_generic_params () for non-generic methods.
912
913 2009-05-12  Mark Probst  <mark.probst@gmail.com>
914
915         * monitor.c, monitor.h (mono_monitor_get_object_monitor_weak_link):
916         New function for returning a monitor's weak link if it has one.
917
918         * sgen-gc.c: Remove an object's monitor's weak link (if it has
919         one) when clearing a domain.  These can still be around because
920         the object might not have been collected.
921
922 2009-05-12  Zoltan Varga  <vargaz@gmail.com>
923
924         * gc.c: Fix a warning.
925
926 2009-05-12  Kornél Pál  <kornelpal@gmail.com>
927
928         * gc.c (mono_gc_init): Set gc_thread on creation. This avoids the
929         prevous wait that resulted in a deadlock on Windows when initializing
930         the runtime form DllMain. Also results in improved startup time.
931         (finalizer_thread): Get rid of thread_started_event.
932         * threads.c, threads-types.h (mono_thread_create_internal): Return the
933         resulting MonoThread.
934
935         Contributed under MIT/X11 license.
936
937 2009-05-11 Rodrigo Kumpera  <rkumpera@novell.com>
938
939         * metadata-verify.c: Verify the implmap table.
940         Don't require that #US and #Strings be present.
941
942 2009-05-11  Sebastien Pouliot  <sebastien@ximian.com>
943
944         * security-core-clr.c: Delegate checks are done at creation time,
945         not a invocation time. Fix exception for Telerik Silverlight demo
946
947 2009-05-11  Mark Probst  <mark.probst@gmail.com>
948
949         * sgen-gc.c (need_remove_object_for_domain): Remove the special
950         case for the Thread class.
951
952         * threads.c: Do clean-up of abort exception/state in
953         thread_cleanup() instead of Thread.free_internal().  Also clean up
954         current_appcontext.  The reason we have to do that is because
955         those references might point into another domain and if that
956         domain is unloaded before the thread is finalized, they point to
957         invalid data.
958
959 2009-05-10  Andreas Faerber  <andreas.faerber@web.de>
960
961         * null-gc.c (mono_gc_weak_link_add, mono_gc_clear_domain): Fix
962         stub signatures.
963         
964         Contributed unter MIT/X11 license.
965
966 2009-05-09  Miguel de Icaza  <miguel@novell.com>
967
968         * verify.c, metadata-verifier.c: Add support for disabling the
969         verifier in some builds.
970
971         [ Sorry, my previous commit accidentally commited some work in
972         progress ]
973
974 2009-05-08  Zoltan Varga  <vargaz@gmail.com>
975
976         * class.c (mono_class_setup_fields): Set class->field.first for
977         generic instances.
978
979 2009-05-07 Rodrigo Kumpera  <rkumpera@novell.com>
980
981         * metadata-verify.c: Verify the typespec table.
982
983 2009-05-07 Rodrigo Kumpera  <rkumpera@novell.com>
984
985         * metadata-verify.c: Verify the module table.
986
987 2009-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
988
989         * metadata-verify.c: Verify the methodimpl table.
990
991 2009-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
992
993         * metadata-verify.c: Verify the property table.
994
995 2009-05-06  Zoltan Varga  <vargaz@gmail.com>
996
997         * debug-helpers.c (mono_method_desc_match): Add support for generic
998         glob patterns.
999
1000 2009-05-05 Rodrigo Kumpera  <rkumpera@novell.com>
1001
1002         * metadata-verify.c: Verify the propertymap table.
1003
1004 2009-05-04 Rodrigo Kumpera  <rkumpera@novell.com>
1005
1006         * metadata-verify.c: Verify the event table.
1007
1008         * metadata-verify.c (search_sorted_table): Fix offset
1009         calculation.
1010
1011 2009-05-02  Zoltan Varga  <vargaz@gmail.com>
1012
1013         * domain-internals.h (struct _MonoJitInfo): Add a 'from_llvm' flag.
1014
1015 2009-05-01  Mark Probst  <mark.probst@gmail.com>
1016
1017         * gc.c (mono_gc_run_finalize): Don't set the domain too late,
1018         because mono_delegate_free_ftnptr() needs it.
1019
1020 2009-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
1021
1022         * metadata-verify.c: Verify the eventmap table.
1023
1024 2009-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
1025
1026         * metadata-verify.c: Verify the standalonesig table.
1027
1028 2009-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
1029
1030         * metadata-verify.c: Verify the field layout table.
1031
1032 2009-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
1033
1034         * class.c (mono_type_get_name_recurse): Don't crash
1035         for ownerless generic params.
1036
1037         * debug-helpers.c (mono_type_get_desc): Correct the format
1038         for ownerless generic params.
1039
1040 2009-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
1041
1042         * metadata-verify.c: Verify the class layout table.
1043
1044 2009-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
1045
1046         * metadata-verify.c: Verify the decl security table.
1047
1048 2009-04-30  Mark Probst  <mark.probst@gmail.com>
1049
1050         * domain.c (mono_domain_set_internal_with_options): Don't do
1051         anything if the old domain is the same as the old one.  Fixes
1052         #499326.
1053
1054 2009-04-30  Mark Probst  <mark.probst@gmail.com>
1055
1056         * appdomain.c: Deregister the reflection_info roots when unloading
1057         a domain.
1058
1059         * sgen-gc.c, domain.c, gc-internal.h: mono_gc_clear_domain() nulls
1060         memory allocated by a domain and frees its disappearing links.
1061
1062         * boehm-gc.c, null-gc.c: Empty implementation of
1063         mono_gc_clear_domain().
1064
1065 2009-04-30  Mark Probst  <mark.probst@gmail.com>
1066
1067         * appdomain.c (clear_cached_vtable): Free the static fields memory
1068         block.
1069
1070 2009-04-30  Mark Probst  <mark.probst@gmail.com>
1071
1072         * gc.c: Set the correct domain when invoking finalizers.
1073
1074         * appdomain.c: Set the correct domain when creating threads.
1075
1076 2009-04-30  Mark Probst  <mark.probst@gmail.com>
1077
1078         * sgen-gc.c: Fix skip size for vectors.
1079
1080 2009-05-03  Martin Baulig  <martin@ximian.com>
1081
1082         * mono-debug-debugger.c
1083         (mono_debugger_check_breakpoints): Check class init handlers even
1084         if we don't have any method load handers.
1085
1086 2009-04-30  Zoltan Varga  <vargaz@gmail.com>
1087
1088         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Avoid 
1089         returning refonly assemblies if refonly is FALSE. Fixes #499013.
1090
1091 2009-04-29 Rodrigo Kumpera  <rkumpera@novell.com>
1092
1093         * metadata-verify.c: Verify the field marshal table.
1094
1095 2009-04-29 Rodrigo Kumpera  <rkumpera@novell.com>
1096
1097         * metadata-verify.c: Verify the custom attribute table.
1098
1099 2009-04-28 Rodrigo Kumpera  <rkumpera@novell.com>
1100
1101         * metadata-verify.c: Verify the constant table.
1102
1103 2009-04-28 Rodrigo Kumpera  <rkumpera@novell.com>
1104
1105         * metadata-verify.c: Verify the memberef table.
1106
1107 2009-04-28 Rodrigo Kumpera  <rkumpera@novell.com>
1108
1109         * metadata-verify.c (get_coded_index_token): Remove
1110         dead argument.
1111
1112 2009-04-28 Rodrigo Kumpera  <rkumpera@novell.com>
1113
1114         * metadata-verify.c: Verify the interfaceimpl table.
1115
1116 2009-04-28 Rodrigo Kumpera  <rkumpera@novell.com>
1117
1118         * verify.c: Improve error message.
1119
1120         * debug-helpers.c (mono_type_get_desc): Harden the code that
1121         deals with VAR and MVAR.
1122
1123 2009-04-28  Zoltan Varga  <vargaz@gmail.com>
1124
1125         * image.c (mono_image_fixup_vtable): Avoid casting an lvalue. Fixes 
1126         part of #498692.
1127
1128 2009-04-23 Tom Hindle <tom_hindle@sil.org>
1129
1130         * cominterop.c (ves_icall_System_Runtime_InteropServices_Marshal_ReleaseComObjectInternal):
1131         changed to match .Net behaviour of not aborting on additional calls to ReleaseComObject.
1132
1133 2009-04-28  Sebastien Pouliot  <sebastien@ximian.com>
1134
1135         * security-core-clr.c: Avoid redundant checks for platform code, 
1136         e.g. check for method and for class (very common) and check
1137         for class and outer class (less common)...
1138
1139 2009-04-27  Zoltan Varga  <vargaz@gmail.com>
1140
1141         * reflection.c: Avoid returning random cattrs for synthetic methods.
1142         Fixes #498545.
1143
1144 2009-04-27 Gonzalo Paniagua Javier <gonzalo@novell.com>
1145
1146         * assembly.c: assemblies in the GAC should never be shadow-copied.
1147
1148 2009-04-26  Mark Probst  <mark.probst@gmail.com>
1149
1150         * domain.c, domain-internals.h: Disable
1151         track_resurrection_{objects,handles}_hash in MonoDomain if using
1152         SGen.
1153
1154 2009-04-24 Rodrigo Kumpera  <rkumpera@novell.com>
1155
1156         * metadata-verify.c: Verify the param table.
1157
1158 2009-04-24 Rodrigo Kumpera  <rkumpera@novell.com>
1159
1160         * metadata-verify.c (verify_typedef_table): Range check FieldList and
1161         MethodList.
1162
1163         * metadata-verify.c (verify_method_table): Proper check the ParamList
1164         field.
1165
1166 2009-04-24 Rodrigo Kumpera  <rkumpera@novell.com>
1167
1168         * metadata-verify.c (verify_method_table): Check for runtime
1169         implemented functions such as delegate .ctors. Remove spurious
1170         printf.
1171         
1172 2009-04-24 Rodrigo Kumpera  <rkumpera@novell.com>
1173
1174         * pedump.c: Proper initialize the runtime forcing the 2.0 profile.
1175
1176 2009-04-24  Raja R Harinath  <harinath@hurrynot.org>
1177
1178         Don't allocate MonoGenericInfo for ownerless generic params.
1179         * class-internals.h (MonoGenericParam::info): Move field to ...
1180         (MonoGenericParamFull): ... this.  New struct.
1181         (MonoGenericContainer::type_params): Change type to
1182         MonoGenericParamFull.
1183         (MonoGenericParam, MonoGenericContainer): Update accessors.
1184         * metadata.c (mono_metadata_parse_generic_param): Don't initialize
1185         'info' field for ownerless generic param.
1186         (mono_metadata_load_generic_params): Update to changes.
1187         * reflection.c (mono_reflection_create_generic_class): Likewise.
1188         (reflection_methodbuilder_to_mono_method): Likewise.
1189         (mono_reflection_initialize_generic_parameter): Likewise.
1190
1191 2009-04-24  Raja R Harinath  <harinath@hurrynot.org>
1192
1193         Don't use MonoGenericParamInfo for ownerless generic params.
1194         * class.c (get_anon_gparam_class, set_anon_gparam_class): New.  Don't
1195         use ParamInfo class at all.
1196         (mono_class_from_generic_parameter): Use them.
1197         (make_generic_param_class): Fix a couple of instances where 'pinfo
1198         == NULL' wasn't handle.
1199
1200 2009-04-24  Raja R Harinath  <harinath@hurrynot.org>
1201
1202         * class.c (make_generic_param_class): Carve out of ...
1203         (mono_class_from_generic_parameter): ... here.
1204
1205 2009-04-24  Raja R Harinath  <harinath@hurrynot.org>
1206
1207         Simplify mono_class_from_generic_parameter
1208         * class-internals.h (MonoGenericParamInfo::token): New field.
1209         * metadata.c (mono_metadata_load_generic_params): Initialize it
1210         from metadata.
1211         * class.c (mono_class_from_generic_parameter): Use it instead of
1212         searching through metadata.
1213
1214 2009-04-23 Rodrigo Kumpera  <rkumpera@novell.com>
1215
1216         * metadata-verify.c: Add verification of the method table.
1217
1218 2009-04-23 Rodrigo Kumpera  <rkumpera@novell.com>
1219
1220         * icall.c (ves_icall_Type_GetMethodsByName): Fix memleak for the
1221         Delegate::Invoke optimization.
1222
1223 2009-04-23 Rodrigo Kumpera  <rkumpera@novell.com>
1224
1225         * appdomain.c (mono_domain_create_appdomain_internal): Free the
1226         string returned by get_shadow_assembly_location_base.
1227
1228         * appdomain.c (get_shadow_assembly_location_base): Add a comment
1229         about caller's ownership.
1230
1231 2009-04-23 Rodrigo Kumpera  <rkumpera@novell.com>
1232
1233         * reflection.c: Add mono_reflection_cleanup_domain to cleanup
1234         reflection memory on domain unload.
1235
1236         * domain.c (mono_domain_free): Don't free refobject_hash, let the
1237         reflection cleanup code do it.
1238
1239         * domain-internals.h: Add mono_reflection_cleanup_domain.
1240
1241         This fixes a memory leak for managed mirrors of reflection objects
1242         on domain unload. 
1243
1244 2009-04-22 Rodrigo Kumpera  <rkumpera@novell.com>
1245
1246         * metadata-verify.c: Implement more verification of the field table.
1247
1248 2009-04-22 Rodrigo Kumpera  <rkumpera@novell.com>
1249
1250         * pedump.c (main): Init mono with mscorlib so it defaults to 2.0 and
1251         doesn't try to parse the input assembly, which can be broken.
1252
1253 2009-04-23  Mark Probst  <mark.probst@gmail.com>
1254
1255         * boehm-gc.c, gc-internal.h, gc.c, monitor.c, null-gc.c,
1256         sgen-gc.c: Implement track resurrection in weak GC handles in SGen
1257         by using the lowest bit in the link to store whether the link is
1258         tracked.  Move the track_resurrection hashes into boehm-gc.c.
1259
1260 2009-04-22  Miguel de Icaza  <miguel@novell.com>
1261
1262         * Makefile.am: Split the console support in platform specific code
1263         and put together a framework for making this easy in the future so
1264         that we can start splitting code instead of having a mess of PLATFORM_WIN32
1265
1266 2009-04-21 Rodrigo Kumpera  <rkumpera@novell.com>
1267
1268         * pedump.c: Fix a warning.
1269
1270 2009-04-21 Rodrigo Kumpera  <rkumpera@novell.com>
1271
1272         * verify.c (mono_delegate_type_equal): Compare valuetypes using
1273         mono_class_from_mono_type to avoid bad interactions with the dual representation
1274         of the generic type definition.
1275
1276 2009-04-21 Rodrigo Kumpera  <rkumpera@novell.com>
1277
1278         * verify.c (do_invoke_method): Use mono_class_from_mono_type to
1279         get the MonoClass for the call context type as it might be a generic
1280         instance.
1281
1282         Fixes #491483.
1283
1284 2009-04-21  Mark Probst  <mark.probst@gmail.com>
1285
1286         * object-internals.h: The Thread object has no execution_context
1287         member anymore.
1288
1289         * threads.c, threadpool.c, threads-types.h: Accessor functions for
1290         the execution context.
1291
1292         * appdomain.c: Bump corlib version.
1293
1294 2009-04-20 Rodrigo Kumpera  <rkumpera@novell.com>
1295
1296         * verify.c (do_newobj): Improve error message.
1297
1298 2009-04-20 Rodrigo Kumpera  <rkumpera@novell.com>
1299
1300         * verify.c (verify_clause_relationship): Only mask as an error if the exception clause
1301         is nested in the filter block.
1302
1303         * verify.c (verify_clause_relationship): The disjoint check must verify if the exception
1304         block is not fully nested.
1305
1306         Fixes #495656.
1307
1308 2009-04-20 Rodrigo Kumpera  <rkumpera@novell.com>
1309
1310         * verify.c (verify_type_compatibility_full): Compare MonoClass and
1311         not MonoType to check for equality of valuetypes as the generic type
1312         definition allows for two different encodings: the generic type definition
1313         class or a generic instance over the GTD arguments.
1314
1315         Fixes #496175.
1316
1317 2009-04-20 Rodrigo Kumpera  <rkumpera@novell.com>
1318
1319         * verify.c (dump_stack_value): Fix compilation with extra debug turned on.
1320
1321         * verify.c (do_initobj): Improve error message.
1322
1323 2009-04-20 Rodrigo Kumpera  <rkumpera@novell.com>
1324
1325         * metadata-verify.c: Enable pe verification as the issue with #496453
1326         is that the authenticode data directory have a different unspecified
1327         format. Ignore it for now.
1328
1329         * pedump.c: Run the metadata verifier together with the IL verifier.
1330
1331         Fixes ##496453.
1332
1333 2009-04-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1334
1335         * metadata-verify.c: Temporarily disable pe verification due to #496453.
1336
1337 2009-04-17 Rodrigo Kumpera  <rkumpera@novell.com>
1338
1339         * class.c (can_access_type): Check visibility against
1340         the element type for pointers and arrays.
1341
1342         Fixes #496150.
1343
1344 2009-04-17 Rodrigo Kumpera  <rkumpera@novell.com>
1345
1346         * metadata-verify.c: Fix cli and table verification to use information
1347         from the MonoImage. A lot of duplicated code got killed.
1348
1349 2009-04-17 Rodrigo Kumpera  <rkumpera@novell.com>
1350
1351
1352         This patch starts to integrate the metadata verifier with the runtime code.
1353
1354         This patch causes major regression in functionality for the metadata verifier
1355         as cli and table verification are disabled since they require to be ported to
1356         use MonoImage information.
1357
1358         * image.c (do_mono_image_load): Split the code in this function
1359         into mono_image_load_pe_data and mono_image_load_cli_data.
1360         Add     care_about_pecoff parameter to not load pecoff data.
1361         Call into the metadata verifier for pecoff and cli verification.
1362
1363         * image.c (mono_image_open_raw): New function that doesn't perform
1364         any parsing of the image contents.
1365         
1366         The reason for the 3 new functions is to give pedump better control
1367         into the interaction with the verifier.
1368
1369         * metadata-internals.h: Add new functions from image.c as part of the
1370         internal mono API.
1371
1372         * metadata-verify.c: Split mono_image_verify into mono_verifier_verify_pe_data,
1373         mono_verifier_verify_cli_data and mono_verifier_verify_table_data. Prepare
1374         to make those functions work together with the runtime.
1375
1376         * verify.c: Add mono_verifier_is_enabled_for_image function that returns
1377         true if the image needs to be verified.
1378
1379         * verify-internals.h: Export new functions from metadata-verify.c and verify.c.
1380
1381         * pedump.c: Use new metadata verifier API.
1382
1383 2009-04-19  Zoltan Varga  <vargaz@gmail.com>
1384
1385         * object.c (mono_install_vtable_trampoline): Make this receive a
1386         trampoline creation function instead of trampoline, allowing the JIT
1387         to use a different trampoline for each vtable.
1388
1389 2009-04-18  Mark Probst  <mark.probst@gmail.com>
1390
1391         * object.c (mono_raise_exception): Don't reset the thread abort
1392         exception state here.
1393
1394 2009-04-18  Mark Probst  <mark.probst@gmail.com>
1395
1396         * icall-def.h: New icall for getting the thread abort exception
1397         state for a thread.
1398
1399         * object.c, thread.c, object-internals.h: A thread's abort
1400         exception state is now a GC handle.  To get the object it stands
1401         for, we must move it into the current app domain, if it's
1402         different than the one where it originated from.
1403
1404         * appdomain.c: Bump corlib version.
1405
1406         * domain.c, domain-internals.h: New function for setting the
1407         domain and migrate the thread abort exception or not.
1408
1409 2009-04-16 Rodrigo Kumpera  <rkumpera@novell.com>
1410
1411         * metadata-verify.c: Add initial verification of the
1412         field table.
1413
1414 2009-04-16 Rodrigo Kumpera  <rkumpera@novell.com>
1415
1416         * metadata-verify.c: Add a macro to conditionally enable
1417         dumping of verification information. Add  make_coded_token
1418         and search_sorted_table to enable search sorted tables
1419         by a given coded token.
1420
1421 2009-04-16 Rodrigo Kumpera  <rkumpera@novell.com>
1422
1423         * metadata-verify.c: Add array mapping from table index
1424         to description offset. Add get_col_offset and get_col_size
1425         functions.
1426
1427 2009-04-16 Rodrigo Kumpera  <rkumpera@novell.com>
1428
1429         * metadata-verify.c: Add remaining table descriptions offsets.
1430         Add remaining coded index descriptions.
1431
1432 2009-04-16 Rodrigo Kumpera  <rkumpera@novell.com>
1433
1434         * metadata-verify.c: Fixed constant table description.
1435         Fixed calculation of HasCustomAttribute coded index size.
1436         Fixed calculation of size for many table indexes. 
1437
1438 2009-04-16 Rodrigo Kumpera  <rkumpera@novell.com>
1439
1440         * pedump.c (dump_metadata): Dump table offset instead
1441         of useless pointer in memory.
1442
1443 2009-04-16 Rodrigo Kumpera  <rkumpera@novell.com>
1444
1445         * metadata-verify.c (verify_typedef_table): Add tests for MethodList.
1446
1447 2009-04-15 Rodrigo Kumpera  <rkumpera@novell.com>
1448
1449         * metadata-verify.c (verify_typedef_table): Add tests for FieldList and
1450         a missing of for interface types.
1451
1452 2009-04-15 Rodrigo Kumpera  <rkumpera@novell.com>
1453
1454         * metadata-verify.c (verify_pe_optional_header): Add comment of why
1455         the code is commented.
1456
1457         * metadata-verify.c (verify_resources_table): Remove spurious printf
1458         and don't fail if there are unmanaged resources. Gmcs generates a useless
1459         one     for all assemblies - I bet it's some MS compatibility junk.
1460
1461 2009-04-15 Rodrigo Kumpera  <rkumpera@novell.com>
1462
1463         * metadata-verify.c (verify_typedef_table): Verify the extends field.
1464
1465         * metadata-verify.c (mono_image_verify): Add a is_corlib.
1466
1467         * verify-internals.h: Same.
1468
1469         * pedump.c: Fix for mono_image_verify new signature.
1470
1471 2009-04-15 Rodrigo Kumpera  <rkumpera@novell.com>
1472
1473         * metadata-verify.c (verify_typedef_table): Verify for some invalid
1474         flags combinations.
1475
1476 2009-04-15 Rodrigo Kumpera  <rkumpera@novell.com>
1477
1478         * metadata-verify.c (verify_module_table): Ignore the generation field.
1479
1480 2009-04-15  Martin Baulig  <martin@ximian.com>
1481
1482         * debug-mono-symfile.c
1483         (mono_debug_symfile_lookup_location): Don't print a warning for
1484         unknown extended opcodes if they're within 0x40 and 0x7f.
1485
1486 2009-04-15  Zoltan Varga  <vargaz@gmail.com>
1487
1488         * marshal.c (mono_marshal_get_runtime_invoke_sig): Don't share runtime
1489         invoke signatures returning an enum. Fixes #494847.
1490
1491 2009-04-14 Rodrigo Kumpera  <rkumpera@novell.com>
1492
1493         * metadata-verify.c: Initial code to verify the typedef table.
1494
1495 2009-04-14 Rodrigo Kumpera  <rkumpera@novell.com>
1496
1497         * verify.c (mono_method_verify): Don't fail if an unconditional branch
1498         with non empty stack happens before the beginning of a try block.
1499
1500         Fixes #494812.
1501
1502 2009-04-14 Rodrigo Kumpera  <rkumpera@novell.com>
1503
1504         * metadata-verify.c: Verify typename and typenamespace fields of
1505         the typeref table.
1506
1507 2009-04-13 Rodrigo Kumpera  <rkumpera@novell.com>
1508
1509         * metadata-verify.c: Initial code to verify the typeref table.
1510
1511 2009-04-13 Rodrigo Kumpera  <rkumpera@novell.com>
1512
1513         * verify.c (verify_delegate_compatibility): Fix error message.
1514
1515 2009-04-14  Sebastien Pouliot  <sebastien@ximian.com>
1516
1517         * security-core-clr.c: Fix typo
1518
1519 2009-04-14  Zoltan Varga  <vargaz@gmail.com>
1520
1521         * marshal.c (delegate_hash_table_add): Make delegate_target_locations 
1522         a MonoGHashTable to keep its values alive.
1523         (emit_marshal_boolean): Fix a warning.
1524
1525 2009-04-13 Gonzalo Paniagua Javier <gonzalo@novell.com>
1526
1527         * socket-io.c: don't return IPv4/IPv6 addresses if the machine does
1528         not have any interface configured for IPv4/IPv6.
1529
1530 2009-04-13 Gonzalo Paniagua Javier <gonzalo@novell.com>
1531
1532         * assembly.c: fix typo in error message.
1533
1534 2009-04-14  Zoltan Varga  <vargaz@gmail.com>
1535
1536         * marshal.c (mono_delegate_to_ftnptr): Use mono_gc_alloc_fixed () for
1537         allocating the location holding the this argument to prevent
1538         'too many root sets' errors.
1539
1540         * object.c (mono_class_create_runtime_vtable): Set field->offset to -1
1541         to mark fields as special static.
1542         (mono_field_static_get_value): Handle special static fields.
1543         (mono_field_static_set_value): Ditto.
1544
1545         * class-internals.h (struct _MonoClassField): Document this.
1546
1547 2009-04-13  Bill Holmes  <billholmes54@gmail.com>
1548
1549         * cominterop.c (mono_cominterop_emit_marshal_com_interface): Assigning
1550           the argument a value of null for the MARSHAL_ACTION_MANAGED_CONV_OUT
1551           case.  This will handle when managed code returns null to native code.
1552
1553         Code is contributed under MIT/X11 license.
1554
1555 2009-04-13  Bill Holmes  <billholmes54@gmail.com>
1556
1557         * object.c (build_imt_slots): Changing a free to a g_free to match
1558           the g_malloc0 in add_imt_builder_entry that allocated this memory.
1559
1560         Code is contributed under MIT/X11 license.
1561
1562 2009-04-13  Bill Holmes  <billholmes54@gmail.com>
1563
1564         * marshal.c (emit_marshal_boolean): Adding code to ensure that
1565           the correct TRUE value is passed through the marshaling layer.
1566
1567         Code is contributed under MIT/X11 license.
1568
1569 2009-04-13  Zoltan Varga  <vargaz@gmail.com>
1570
1571         * marshal.c (mono_marshal_emit_managed_wrapper): Handle closed delegates
1572         correctly. Fixes #492330.
1573         
1574         * marshal.c: Fix the embedding of object pointers into JITted code in
1575         the native-to-managed wrappers by allocating some GC tracked memory, and
1576         embedding the address of that.
1577
1578 2009-04-11  Zoltan Varga  <vargaz@gmail.com>
1579
1580         * object.c (mono_class_create_runtime_vtable): Avoid putting MonoMethod
1581         pointers into the vtable.
1582
1583 2009-04-09 Rodrigo Kumpera  <rkumpera@novell.com>
1584
1585         * verify.c (mono_delegate_type_equal): Proper check MONO_TYPE_CLASS.
1586
1587         * verify.c (verify_ldftn_delegate): Improve error message.
1588
1589 2009-04-09  Raja R Harinath  <harinath@hurrynot.org>
1590
1591         * reflection.c (my_mono_class_from_mono_type): Remove.
1592
1593 2009-04-09  Raja R Harinath  <harinath@hurrynot.org>
1594
1595         Prepare to reduce memory usage of owner-less generic parameters (1/n)
1596         * class-internals.h (MonoGenericParam): Carve out pklass, name, flags
1597         and constraints fields into ...
1598         (MonoGenericParamInfo): ... this.
1599         (mono_generic_param_info, mono_generic_container_get_param_info):
1600         New accessors.
1601         * class.c, debug-helpers.c, icall.c: Update to changes.
1602         * metadata.c, reflection.c, verify.c: Likewise.
1603
1604 2009-04-09  Zoltan Varga  <vargaz@gmail.com>
1605
1606         * debug-helpers.c (dis_one): Fix decoding of strings in dynamic images.
1607
1608         * marshal.c (get_runtime_invoke_type): Share enums with their base types.
1609         
1610         * marshal.c (get_runtime_invoke_type): Share pointers with ints and
1611         booleans with sbytes.
1612
1613 2009-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
1614
1615         * class.c (can_access_instantiation): Verify accesibility of element types
1616         for arrays and pointers.
1617
1618         * class.c (can_access_type): Return true if the target class is VAR or MVAR.
1619
1620         * class.c (mono_method_can_access_method_full): Fix typos in the documentation.
1621
1622         Fixes #493068.
1623
1624 2009-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
1625
1626         * verify.c (do_invoke_method): Improve error messages.
1627
1628 2009-04-08  Bill Holmes  <billholmes54@gmail.com>
1629
1630         * verify.c:  Fixing the MSVC build.
1631
1632         Code is contributed under MIT/X11 license.
1633
1634 2009-04-08  Sebastien Pouliot  <sebastien@ximian.com>
1635
1636         * security-core-clr.c: Simplify get_reflection_caller not to call
1637         mono_method_get_last_managed (another stack walk) and adjust the
1638         callers to handle a (should not happen) NULL return value.
1639
1640 2009-04-08  Raja R Harinath  <harinath@hurrynot.org>
1641
1642         Add accessors to some MonoGenericParam fields
1643         * class-internals.h (mono_generic_param_owner): New accessor.
1644         (mono_generic_param_num): Likewise.
1645         (mono_type_get_generic_param_owner): New helper.
1646         (mono_type_get_generic_param_num): New helper.
1647         * class.c, icall.c, metadata.c, reflection.c, verify.c: Use them.
1648
1649 2009-04-08  Raja R Harinath  <harinath@hurrynot.org>
1650
1651         * class-internals.h (mono_generic_container_get_param): New wrapper.
1652         * class.c, icall.c, metadata.c, verify.c: Use it.
1653
1654 2009-04-08  Raja R Harinath  <harinath@hurrynot.org>
1655
1656         Fix gtest-252.cs
1657         * verify.c (mono_type_is_valid_type_in_context): Rewrite to use
1658         the standard case/loop.  In particular, don't complain about
1659         references to generic type definitions.
1660
1661 2009-04-07  Zoltan Varga  <vargaz@gmail.com>
1662
1663         * debug-helpers.c (dis_one): Decode string arguments.
1664
1665 2009-04-07 Rodrigo Kumpera  <rkumpera@novell.com>
1666
1667         * pedump.c (dump_verify_info): Dump type name correctly.
1668
1669 2009-04-07 Rodrigo Kumpera  <rkumpera@novell.com>
1670
1671         * verify.c (mono_method_verify): Don't init code slots for exception boundaries if they
1672         are larger than code size.
1673
1674         This can happen in valid code if the try/catch block is not followed by any instruction
1675         and do a backward branch on the leave instruction.
1676
1677         Fixes #492494.
1678
1679 2009-04-06  Sebastien Pouliot  <sebastien@ximian.com>
1680
1681         * security-core-clr.c: Fix typo while comparing second method names
1682         in can_avoid_corlib_reflection_delegate_optimization
1683
1684 2009-04-06 Rodrigo Kumpera  <rkumpera@novell.com>
1685
1686         * verify.c (do_throw): Don't allow an unboxed generic param ar argument.
1687
1688         Fixes #487738.
1689
1690 2009-04-06 Rodrigo Kumpera  <rkumpera@novell.com>
1691
1692         * metadata.c (do_mono_metadata_parse_type): Fail if we are decoding
1693         a MVAR using a class context.
1694
1695         Fixes #490335.
1696
1697 2009-04-06  Zoltan Varga  <vargaz@gmail.com>
1698
1699         * object.c (mono_class_compute_gc_descriptor): Make this non-static.
1700
1701         * domain-internals.h (struct _MonoJitInfo): Add a 'gc_info' field.
1702
1703         * gc-internal.h (MonoGCCallbacks): New stucture containing the callback
1704         functions supplied by the JIT for the SGEN GC.
1705
1706         * sgen-gc.c: Call the callbacks supplied by the JIT to do stack marking.
1707         
1708 2009-04-06  Massimiliano Mantione  <massi@ximian.com>
1709
1710         monitor.c (mono_monitor_try_enter_internal):
1711         Added calls to profile monitor contentions.
1712         Also duplicated a small piece of code (the "get the monitor" logic)
1713         from the fast path to the slow path, and changed the relevant goto
1714         statements, so that monitor acquisition events can be emitted from the
1715         slow path (this is by Paolo Molaro).
1716
1717 2009-04-06  Massimiliano Mantione  <massi@ximian.com>
1718
1719         * profiler.c, profiler.h, profiler-private.h:
1720         Added support for profiling monitor contentions.
1721
1722 2009-04-03 Rodrigo Kumpera  <rkumpera@novell.com>
1723
1724         * metadata-verify.c: Verify the modules table.
1725
1726 2009-04-02 Rodrigo Kumpera  <rkumpera@novell.com>
1727
1728         * verify.c (mono_generic_param_is_constraint_compatible): Inflate the candidate
1729         using the context of the method been verifier and not of the method been called.
1730
1731         * verify.c: Add verifier_inflate_type and mono_type_is_valid_type_in_context to
1732         safely inflate generic types. 
1733
1734 2009-04-02  Sebastien Pouliot  <sebastien@ximian.com>
1735
1736         * security-core-clr.c: Change the strategy for checking the 
1737         "reflection using delegates optimization" to avoid unneeded 
1738         attributes in multiple class libraries.
1739
1740 2009-04-02  Mark Probst  <mark.probst@gmail.com>
1741
1742         * sgen-gc.c: Remove object element in the disappearing link struct
1743         by storing the object pointer in the link.
1744
1745 2009-03-31 Rodrigo Kumpera  <rkumpera@novell.com>
1746
1747         * pedump.c (dump_verify_info): Don't crash if signature decoding fails.
1748
1749 2009-03-31 Rodrigo Kumpera  <rkumpera@novell.com>
1750
1751         * verify.c (verifier_load_field): Fail if the field parent could not be loaded.
1752
1753         * verify.c (mono_method_verify): Do proper bounds checking of exception
1754         clause ranges.
1755
1756 2009-03-31 Rodrigo Kumpera  <rkumpera@novell.com>
1757
1758         * loader.c (mono_field_from_token): Don't crash if the field parent could
1759         not be decoded.
1760
1761 2009-03-31  Mark Probst  <mark.probst@gmail.com>
1762
1763         * sgen-gc.c: Execute critical finalizers after ordinary
1764         finalizers.
1765
1766         * class-internals.h, domain.c: Add CriticalFinalizerObject to
1767         mono_defaults.
1768
1769 2009-03-31 Jb Evain <jbevain@novell.com>
1770
1771         * verify.c (do_ldstr): don't check if a string is in the user strings
1772         heap if the current image is dynamic.
1773
1774 2009-03-31  Mark Probst  <mark.probst@gmail.com>
1775
1776         * sgen-gc.c: Wait until the last finalizer has executed when
1777         returning from WaitForPendingFinalizers.
1778
1779 2009-03-31  Martin Baulig  <martin@ximian.com>
1780
1781         * mono-debug-debugger.h (MonoDebuggerEvent): Add
1782         `MONO_DEBUGGER_EVENT_CREATE_APPDOMAIN' and
1783         `MONO_DEBUGGER_EVENT_UNLOAD_APPDOMAIN'.
1784         (mono_debugger_event_create_appdomain): New function.
1785         (mono_debugger_event_unload_appdomain): New function.
1786
1787         * appdomain.c (mono_domain_create_appdomain_internal): Call
1788         mono_debugger_event_create_appdomain().
1789
1790 2009-03-31  Martin Baulig  <martin@ximian.com>
1791
1792         * mono-debug-debugger.c
1793         (mono_debugger_register_class_init_callback): Also register the
1794         class init callback if the class is already initialized to make
1795         things work with shadow copied assemblies.
1796
1797 2009-03-31  Sebastien Pouliot  <sebastien@ximian.com>
1798
1799         * security-core-clr.c
1800         (mono_security_core_clr_ensure_reflection_access_field): Let 
1801         critical code access the field (just like we do for methods). Use
1802         check_field_access helper.
1803         (mono_security_core_clr_ensure_reflection_access_method): Use 
1804         check_field_access helper.
1805
1806 2009-03-31  Mark Probst  <mark.probst@gmail.com>
1807
1808         * sgen-gc.c: Remove data (callback) element from FinalizeEntry and
1809         call the run-finalize function directly.
1810
1811         * gc.c, gc-internal.h: Make run_finalize() non-static.
1812
1813 2009-03-31  Mark Probst  <mark.probst@gmail.com>
1814
1815         * sgen-gc.c: Use a separate struct for disappearing links.
1816
1817 2009-03-31 Gonzalo Paniagua Javier <gonzalo@novell.com>
1818
1819         * socket-io.c: don't fail if the SocketOptionsFlag has Partial or
1820         * MaxIOVectorLength enabled, just ignore them.
1821         Fixes bug #349688.
1822
1823 2009-03-30 Rodrigo Kumpera  <rkumpera@novell.com>
1824
1825         * metadata-verify.c: Fix eglib build.
1826
1827 2009-03-30  Zoltan Varga  <vargaz@gmail.com>
1828
1829         * threads-types.h: Fix the win32 build.
1830
1831 2009-03-28  Sebastien Pouliot  <sebastien@ximian.com>
1832
1833         * class.c: move coreclr inheritance/override checks to 
1834         security-core.clr.c
1835         * security-core.clr.c|h: add code from class.c with additional
1836         documentation. Fix override check when the method is not critical.
1837
1838 2009-03-28  Zoltan Varga  <vargaz@gmail.com>
1839
1840         * debug-helpers.c (mono_method_desc_match): Make '*' match anything.
1841         (match_class): Ditto.
1842
1843 2009-03-27 Rodrigo Kumpera  <rkumpera@novell.com>
1844
1845         * metadata-verify.c: Rename bounds_check_offset to bounds_check_datadir.
1846
1847         * metadata-verify.c: Implement table layout row size calculation. Verify
1848         the total size of the tables.
1849
1850 2009-03-27 Rodrigo Kumpera  <rkumpera@novell.com>
1851
1852         * metadata-verify.c: Verify heap sizes and size to decode row counts. 
1853
1854 2009-03-27 Gonzalo Paniagua Javier <gonzalo@novell.com>
1855
1856         * appdomain.c:
1857         * console-io.[ch]: added new mono_console_init() to make sure that
1858         file descriptors 0, 1 and 2 are opened.
1859         Bug #489019 fixed.
1860
1861 2009-03-27  Sebastien Pouliot  <sebastien@ximian.com> 
1862
1863         * appdomain.h: Export a new callback type and a new function to
1864         set this callback. This allow a mono host to provide it's own
1865         definition for "platform code".
1866         * metadata-internals.h: Add a core_clr_platform_code flag on 
1867         _MonoImage to (cache and) know if it is representing platform 
1868         code.
1869         * image.c (do_mono_image_open): Set core_clr_platform_code flag 
1870         on platform code images.
1871         * security-core-clr.c|h 
1872         (mono_security_set_core_clr_platform_callback): Allow the host
1873         to provide it's own platform check definition.
1874         (mono_security_core_clr_determine_platform_image): Detect if an 
1875         image is platform code (using the specified callback).
1876         (mono_security_core_clr_is_platform_image): Return cached value 
1877         for platform code.
1878
1879 2009-03-27  Zoltan Varga  <vargaz@gmail.com>
1880
1881         * threads.c (mono_create_thread): New helper function to wrap CreateThread
1882         which has different parameter types for the 'tid' argument in windows and
1883         the io-layer.
1884
1885         * appdomain.c attach.c threads.c: Use the new helper.
1886
1887 2009-03-26 Rodrigo Kumpera  <rkumpera@novell.com>
1888
1889         * metadata-verify.c: Verify valid table bits.
1890
1891 2009-03-26 Rodrigo Kumpera  <rkumpera@novell.com>
1892
1893         * metadata-verify.c (verify_metadata_header): Store size in the size field.
1894
1895         * metadata-verify.c: Add initial table schema verification.
1896
1897 2009-03-26  Zoltan Varga  <vargaz@gmail.com>
1898
1899         * icall.c (ves_icall_get_parameter_info): Add a 'member' argument, used to
1900         obtain the refclass argument needed by mono_param_get_objects (). Fixes
1901         #488383.
1902
1903         * reflection.c (mono_param_get_objects_internal): Add a 'refclass' argument.
1904
1905         * appdomain.c (MONO_CORLIB_VERSION): Bump this.
1906
1907 2009-03-26  Sebastien Pouliot  <sebastien@ximian.com>
1908
1909         * security-core-clr.c: Add/update documentation
1910
1911 2009-03-26  Zoltan Varga  <vargaz@gmail.com>
1912
1913         * marshal.c (emit_marshal_object): Generate code to throw an exception
1914         instead of throwing it. Fixes #488670.
1915
1916 2009-03-25  Sebastien Pouliot  <sebastien@ximian.com>
1917
1918         * appdomain.c: Bump MONO_CORLIB_VERSION to 73.
1919         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Add
1920         an extra 'throwOnBindFailure' parameter to the icall. Remove FIXME
1921         and add a call to mono_security_core_clr_ensure_delegate_creation
1922         to do the extra checks required by CoreCLR.
1923         * security-core-clr.c|h: Add function to check delegate creation,
1924         both in the binding and accessibility, under CoreCLR.
1925
1926 2009-03-25  Sebastien Pouliot  <sebastien@ximian.com> 
1927
1928         * reflection.c (mono_reflection_create_dynamic_method): when 
1929         coreclr is enabled make sure that every resolved object are
1930         checked (e.g. field and method access).
1931         * security-core-clr.c|h: Add function to check objects resolved
1932         when a dynamic method is created.
1933
1934 2009-03-24 Rodrigo Kumpera  <rkumpera@novell.com>
1935
1936         * metadata-verify.c: Cache directory rva translations.
1937
1938         * metadata-verify.c: Add cli-header and streams verification.
1939
1940 2009-03-24 Rodrigo Kumpera  <rkumpera@novell.com>
1941
1942         * image.c (load_metadata_ptrs): We decode MonoImage::md_version_minor at
1943         the wrong offset (8 instead of 6).
1944
1945 2009-03-23  Zoltan Varga  <vargaz@gmail.com>
1946
1947         * marshal.c (mono_delegate_to_ftnptr): For delegates wrapping pinvoke
1948         methods, return the native function address itself. Fixes
1949         #487758.
1950
1951 2009-03-23 Gonzalo Paniagua Javier <gonzalo@novell.com>
1952
1953         * console-io.c: some of the values for control characters might not be
1954         present.
1955
1956 2009-03-21  Sebastien Pouliot  <sebastien@ximian.com>
1957
1958         * exception.c|h: Add helpers to create [Field|Method]AccessException
1959         * icall.c: Add required coreclr check calls for field reflection.
1960         Move the existing (method) check logic into security-core-clr.c
1961         * security-core-clr.c: Add functions to check if the access of a
1962         field or method is allowed when reflecting under coreclr. This is
1963         mostly done using a stack walk to find the "real" caller: i.e. the
1964         code that is calling the reflection
1965
1966 2009-03-20  Zoltan Varga  <vargaz@gmail.com>
1967
1968         * gc-internal.h: Change location of gc_wrapper.h
1969
1970 2009-03-20  Sebastien Pouliot  <sebastien@ximian.com> 
1971
1972         * class.c: Simplification to coreclr checks for overrides that
1973         makes it easier to set breakpoints.
1974
1975 2009-03-20  Sebastien Pouliot  <sebastien@ximian.com>
1976
1977         * security-core-clr.c|h: (mono_security_core_clr_class_level, 
1978         mono_security_core_clr_method_level): Avoid potential 
1979         MonoCustomAttrInfo allocation for transparent assemblies (e.g. 
1980         user/application code) and make it easier to set breakpoints
1981
1982 2009-03-19 Rodrigo Kumpera  <rkumpera@novell.com>
1983
1984         * metadata-verify.c: Reject cli header tables that mono don't handle.
1985
1986 2009-03-19 Rodrigo Kumpera  <rkumpera@novell.com>
1987
1988         * pedump.c: Fix CLI header dumping.
1989
1990 2009-03-19 Rodrigo Kumpera  <rkumpera@novell.com>
1991
1992         * metadata-verify.c: More CLI header verification.
1993
1994 2009-03-19  Zoltan Varga  <vargaz@gmail.com>
1995
1996         * locales.c (get_current_locale_name): Use g_malloc instead of malloc.
1997
1998 2009-03-18 Rodrigo Kumpera  <rkumpera@novell.com>
1999
2000         * metadata-verify.c: Initial verification of the CLI header.
2001
2002 2009-03-18 Rodrigo Kumpera  <rkumpera@novell.com>
2003
2004         * metadata-verify.c (verify_resources_table): Fix verification of zero
2005         sized resource section and id entries count.
2006
2007 2009-03-18  Zoltan Varga  <vargaz@gmail.com>
2008
2009         * icall.c: Handle user types in many Type icalls. Fixes #486303.
2010
2011 2009-03-17  Jb Evain  <jbevain@novell.com>
2012
2013         * profiler.c: call mono_gc_base_init from mono_profiler_load.
2014
2015 2009-03-17  Zoltan Varga  <vargaz@gmail.com>
2016
2017         * sgen-gc.c (mono_gc_make_descr_for_object): Fix 64 bit support.
2018         (mono_gc_make_descr_for_array): Ditto.
2019
2020 2009-03-17  Sebastien Pouliot  <sebastien@ximian.com>
2021
2022         * verify.c (mono_verifier_is_class_full_trust): Add support for
2023         CoreCLR security mode where trusted assemblies are defined as
2024         "platform code".
2025
2026 2009-03-16 Rodrigo Kumpera  <rkumpera@novell.com>
2027
2028         * metadata-verify.c: Add minimal PECOFF resource verification.
2029
2030 2009-03-16 Rodrigo Kumpera  <rkumpera@novell.com>
2031
2032         * metadata-verify.c: Be less restrictive with some coff fields.
2033
2034 2009-03-16 Rodrigo Kumpera  <rkumpera@novell.com>
2035
2036         * verify.c (init_stack_with_value_at_exception_boundary): Init generic
2037         params as boxed values on stack. Fixes #485706.
2038
2039 2009-03-16 Gonzalo Paniagua Javier <gonzalo@novell.com>
2040
2041         * console-io.c: the termios values may vary in different flavors of unix.
2042
2043 2009-03-16 Gonzalo Paniagua Javier <gonzalo@novell.com>
2044
2045         * console-io.[ch]: return the entire set of control characters when
2046         initializing the terminal.
2047         * appdomain.c: bump corlib version.
2048
2049 Mon Mar 16 11:11:26 CET 2009 Paolo Molaro <lupus@ximian.com>
2050
2051         * mono-perfcounters.c: added support for in-process custom
2052         performance counters.
2053
2054 2009-03-13 Rodrigo Kumpera  <rkumpera@novell.com>
2055
2056         * metadata-verify.c: Small cleanup and add comment for IAT directory entry. 
2057
2058 2009-03-13 Rodrigo Kumpera  <rkumpera@novell.com>
2059
2060         * metadata-verify.c: Verify the data pointed by the import table. 
2061
2062 2009-03-13 Rodrigo Kumpera  <rkumpera@novell.com>
2063
2064         * metadata-verify.c (load_data_directories): Store data
2065         directory contents.
2066
2067         * metadata-verify.c: Verify the import table. 
2068
2069 2009-03-12 Rodrigo Kumpera  <rkumpera@novell.com>
2070
2071         * metadata-verify.c: Verify data directories.
2072
2073 2009-03-12 Rodrigo Kumpera  <rkumpera@novell.com>
2074
2075         * metadata-verify.c: Check section header flags.
2076
2077 2009-03-12 Gonzalo Paniagua Javier <gonzalo@novell.com>
2078
2079         * appdomain.c: if the assembly name is a shadow-copied file, return
2080         TRUE from mono_is_shadow_copy_enabled but don't actually do anything
2081         in mono_make_shadow_copy.
2082         * icall.c: if the assembly name is a shadow-copied file, replace it
2083         with the original assembly path.
2084
2085         Bug #484244 fixed. NUnit tests for corlib can be run without
2086         --noshadow now.
2087
2088 2009-03-12  Zoltan Varga  <vargaz@gmail.com>
2089
2090         * sgen-gc.c (add_to_global_remset): Fix the handling of root global remset
2091         entries when the table is reallocated.
2092
2093         * icall.c: Allocate the memory used by the mono_ptr_array macros using
2094         mono_gc_alloc_fixed () since it contains GC refs.
2095
2096 2009-03-10  Zoltan Varga  <vargaz@gmail.com>
2097
2098         * reflection.c (ensure_complete_type): New helper function to call
2099         type resolve handlers for unfinished dynamic types.
2100         (resolve_object): Call it for MonoClassFields. Fixes #483852.
2101
2102 2009-03-09  Zoltan Varga  <vargaz@gmail.com>
2103
2104         * reflection.c (mono_custom_attrs_has_attr): Handle interfaces. Fixes
2105         #483247.
2106
2107 2009-03-08 Rodrigo Kumpera  <rkumpera@novell.com>
2108
2109         * appdomain.c (get_shadow_assembly_location): Fix memleak.
2110
2111 2009-03-08  Zoltan Varga  <vargaz@gmail.com>
2112
2113         * domain-internals.h (struct _MonoDomain): Add new hash tables mapping
2114         between GCHandles of type WeakTrackResurrection and the objects they
2115         point to.
2116
2117         * gc.c: Partly implement the sematics of GCHandles of type 
2118         WeakTrackResurrection: these handles should only be cleared after the
2119         finalizer of the object they are pointing to has ran.
2120
2121 2009-03-06  Mark Probst  <mark.probst@gmail.com>
2122
2123         * icall.c: Partially revert r126631 because using the jump
2124         trampolines for generic shared methods makes it superfluous.
2125
2126 2009-03-06  Zoltan Varga  <vargaz@gmail.com>
2127
2128         * threads.c (handle_store): Create the 'threads' hash table with the proper
2129         MONO_HASH_VALUE_GC type.
2130
2131 2009-03-05  Zoltan Varga  <vargaz@gmail.com>
2132
2133         * domain-internals.h (struct _MonoDomain): Move 'typeof_void' before
2134         FIRST_GC_TRACKED.
2135
2136         * domain.c (mono_domain_create): Register the fields between FIRST_GC_TRACKED
2137         and LAST_GC_TRACKED as a GC root.
2138
2139         * gc-internal.h: Fix the comment of mono_gc_alloc_fixed.
2140
2141         * object.c (mono_class_create_runtime_vtable): Create a GC descriptor for
2142         the static data even if it consists of 1 reference.
2143
2144         * boehm-gc.c (mono_gc_alloc_fixed): Allocate using GC_MALLOC_EXPLICITLY_TYPED
2145         if there is a GC descriptor.
2146
2147         * reflection.c (ALLOC_REFENTRY): Allocate ReflectedEntry-es using malloc
2148         instead of through the GC since they contain no object references.
2149
2150 2009-03-05  Mark Probst  <mark.probst@gmail.com>
2151
2152         * generic-sharing.c (instantiate_other_info): Always return a jump
2153         trampoline for method code.
2154
2155 2009-03-05  Marek Habersack  <mhabersack@novell.com>
2156
2157         * culture-info-tables.h: generated to include the en-tt culture.
2158
2159 2009-03-04 Rodrigo Kumpera  <rkumpera@novell.com>
2160
2161         * domain-internals.h (MonoDomain): Add two fields to cache invoke wrappers to
2162         capture the thread context.
2163
2164         * object.c (mono_async_result_new): Cache the invoke wrappers to
2165         ExecutionContext::Capture.
2166
2167 2009-03-04 Rodrigo Kumpera  <rkumpera@novell.com>
2168
2169         * marshal.h: Add a prototype for what mono_compile_method returns
2170         for invoke wrappers.
2171
2172         * gc.c: Use the new prototype declaration.
2173
2174 2009-03-04  Geoff Norton  <gnorton@novell.com>
2175
2176         * boehm-gc.c: Add some MONO_LOG tracing for the GC
2177         * gc-internal.h:
2178         * mono-gc.h: Expose mono_gc_invoke_finalizers in the embedding api.
2179
2180 2009-03-04  Martin Baulig  <martin@ximian.com>
2181
2182         * mono-debug.h
2183         (mono_debugger_runtime_invoke): Removed.
2184
2185         * mono-debug-debugger.c
2186         (mono_runtime_invoke): Moved into ../mini/debug-mini.c.
2187
2188 2009-03-02  Martin Baulig  <martin@ximian.com>
2189
2190         * mono-debug.h
2191         (mono_debugger_unhandled_exception): Removed.
2192         (mono_debugger_handle_exception): Removed.
2193         (mono_debugger_throw_exception): Removed.
2194
2195         * mono-debug.c
2196         (mono_debug_debugger_version): Bump to 5.
2197
2198         * mono-debug-debugger.c: Moved the exception handling code to
2199         ../mini/debug-mini.c
2200
2201 2009-03-03  Zoltan Varga  <vargaz@gmail.com>
2202
2203         * domain-internals.h (struct _MonoDomain): Add a separate lock for the
2204         finalize_objects_hash.
2205
2206         * gc.c: Use the separate lock to access the finalize_objects_hash field.
2207         
2208         * domain-internals.h (struct _MonoDomain): Add finalize_runtime_invoke
2209         field.
2210
2211         * metadata-internals.h (struct _MonoImage): Add runtime_invoke_vcall_cache
2212         cache.
2213
2214         * image.c (mono_image_close): Free it.
2215         
2216         * marshal.c (mono_marshal_get_runtime_invoke): Add a 'virtual' argument
2217         allowing a creation of a wrapper which invokes its method using a CALLVIRT
2218         on the this argument.
2219
2220         * gc.c (run_finalize): Optimize the calling of the finalizers.
2221
2222 2009-03-03  Martin Baulig  <martin@ximian.com>
2223
2224         * mono-debug.h (MONO_DEBUGGER_MAJOR_VERSION): Bump to 81 because
2225         of the `MonoGenericInst' changes.
2226
2227 2009-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
2228
2229         * icall.c (ves_icall_MonoType_GetGenericArguments): Use
2230         mono_array_class_get_cached to reduce locking contention. Extract
2231         a domain var.
2232
2233         * icall.c (ves_icall_Type_GetFields_internal): Avoid allocating
2234         intermediary managed arrays. Use caching version of mono_array_new
2235         to allocate the result array.
2236
2237         * icall.c (ves_icall_Type_GetEvents_internal): Same.    
2238
2239         * icall.c (ves_icall_Type_GetNestedTypes): Same.        
2240
2241         * locales.c (create_names_array_idx):  Use mono_array_new_cached
2242         to reduce locking contention.
2243
2244 2009-03-03  Zoltan Varga  <vargaz@gmail.com>
2245                 
2246         * object.c (mono_method_add_generic_virtual_invocation): Put back the
2247         thunk builder code for the non-interface case.
2248
2249 2009-03-02  Zoltan Varga  <vargaz@gmail.com>
2250
2251         * object.c (get_generic_virtual_entries): New helper function to collect
2252         the virtual generic method instances which need to be added to an IMT
2253         thunk.
2254         (mono_method_add_generic_virtual_invocation): Add a 'vtable' argument.
2255         Instead of creating a new IMT thunk, reset the vtable slot to the
2256         trampoline, the thunk will be created the next time the trampoline is called.
2257         (build_imt_slots): Add support for virtual generic methods in interfaces by
2258         adding to the IMT thunk all the methods registered using 
2259         mono_method_add_generic_virtual_invocation ().
2260
2261         * object-internals.h (_MonoImtBuilderEntry): Add a 'has_target_code' field.
2262         (struct _MonoIMTCheckItem): Ditto.
2263
2264         * object.c (mono_method_add_generic_virtual_invocation): Take a
2265         MonoMethod argument instead of a MonoGenericInst. Fix the construction of
2266         the IMT thunk to include all items.
2267         
2268         * object.c (mono_class_create_runtime_vtable): Add a missing
2269         mono_loader_unlock ().
2270
2271 2009-03-02 Rodrigo Kumpera  <rkumpera@novell.com>
2272
2273         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
2274
2275         * object-internals.h (MonoReflectionEvent): Add cached_add_event.
2276
2277 2009-03-02 Rodrigo Kumpera  <rkumpera@novell.com>
2278
2279         * object-internals.h: Rename _MonoReflectionEvent to
2280         MonoReflectionMonoEvent so it reflects the right managed type.
2281         Add a MonoReflectionEvent that correctly represents System.EventInfo.
2282
2283         * icall.c:
2284         * reflection.c: Adjust code to use the new MonoReflectionMonoEvent
2285         type.
2286
2287 2009-03-02 Rodrigo Kumpera  <rkumpera@novell.com>
2288
2289         * icall.c (ves_icall_Type_GetMethodsByName): Avoid allocating
2290         intermediary managed arrays. Use caching version of mono_array_new
2291         to allocate the result array.
2292
2293 2009-03-01 Rodrigo Kumpera  <rkumpera@novell.com>
2294
2295         * reflection.c: Use cached version of mono_array_new alongside
2296         the mono_reflection_get_custom_attrs_by_type call path.
2297
2298 2009-03-01 Rodrigo Kumpera  <rkumpera@novell.com>
2299
2300         * icall.c (ves_icall_Type_GetInterfaces): Avoid allocating
2301         intermediary managed arrays. Use caching version of mono_array_new
2302         to allocate the result array.
2303
2304         * icall.c (ves_icall_Type_GetConstructors_internal): Same.
2305
2306 2009-03-01 Rodrigo Kumpera  <rkumpera@novell.com>
2307
2308         * icall.c: Add small implementation of a growable stack bound array.
2309
2310         * icall.c (ves_icall_System_Enum_get_hashcode): Fix warning.
2311
2312         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid allocating
2313         intermediary managed arrays. Use caching version of mono_array_new
2314         to allocate the result array.
2315
2316 2009-02-27 Rodrigo Kumpera  <rkumpera@novell.com>
2317
2318         * icall.c: New icall ves_icall_System_Enum_compare_value_to that
2319         helps Enum::CompareTo to be implemented without reboxing all enums
2320         to their underlying type.
2321 2009-02-27  Zoltan Varga  <vargaz@gmail.com>
2322
2323         * domain.c (SET_APPDOMAIN): Avoid calling TlsSetValue () on some platforms,
2324         since it acquires a global lock leading to scalability problems.
2325
2326         * profiler.c: Make the stat profiler work with multiple appdomains, this
2327         currently only works when no appdomains are unloaded.
2328
2329 2009-02-26 Gonzalo Paniagua Javier <gonzalo@novell.com>
2330
2331         * appdomain.c: make the check to avoid copying when the assembly is
2332         already shadow copied actually work.
2333
2334 2009-02-26  Zoltan Varga  <vargaz@gmail.com>
2335
2336         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
2337
2338         * object-internals.h (struct _MonoReflectionGenericClass): Sync with
2339         changes to the managed side.
2340
2341 2009-02-25  Zoltan Varga  <vargaz@gmail.com>
2342
2343         * metadata-internals.h (struct _MonoImage): Add a new cache for szarray
2344         classes + a separate lock for it, as it is used frequently at runtime, not
2345         just during metadata loading/JIT compilation.
2346
2347         * class.c (mono_bounded_array_class_get): Use the separate cache + lock
2348         for szarrays.
2349         
2350         * object-internals.h (mono_class_from_name_cached): New macro to cache
2351         the results of the lookup locally without having to declare a static
2352         variable to hold it.
2353         (mono_class_get_field_from_name_cached): Ditto.
2354         (mono_array_class_get_cached): Ditto.
2355
2356         * threadpool.c threads.c locales.c icall.c reflection.c socket-io.c: Use
2357         the new macros.
2358         
2359         * object.c (mono_get_delegate_invoke): Call setup_methods () to avoid the
2360         slower search in metadata.
2361
2362         * pedump.c: Fix a warning.
2363
2364 2009-02-23  Zoltan Varga  <vargaz@gmail.com>
2365
2366         * reflection.c (encode_locals): Add checks for user types.
2367         (method_encode_clauses): Ditto.
2368         (method_encode_code): Ditto.
2369         (mono_image_create_token): Ditto.
2370
2371         * object-internals.h: Change the type of more fields from MonoReflectionType*
2372         to MonoObject*.
2373
2374 2009-02-22  Zoltan Varga  <vargaz@gmail.com>
2375
2376         * threads.c (mono_thread_suspend_all_other_threads): Handle the case when
2377         the a thread does not suspend within 100ms.
2378
2379         * monitor.c (mono_monitor_try_enter_internal): Handle SuspendRequested
2380         in addition to StopRequested as well.
2381
2382         * mono-debug.c: Call _mono_debug_get_image () while holding the debug lock.
2383
2384         * debug-mono-symfile.c (mono_debug_symfile_lookup_method): Actually
2385         search the method_hash before inserting a new entry, to avoid crashes when
2386         the same method is inserted multiple times, causing the old 
2387         MonoDebugMethodInfo structure to be freed by the value dtor function.
2388
2389 2009-02-22 Gonzalo Paniagua Javier <gonzalo@novell.com>
2390
2391         * socket-io.c: support SO_MAXCONN, SO_USELOOPBACK and
2392         SO_EXLUSIVEADDRUSE where available.
2393
2394 2009-02-21  Zoltan Varga  <vargaz@gmail.com>
2395
2396         * marshal.c (mono_marshal_get_runtime_invoke): Fix _another_ bug sharing
2397         runtime invoke wrappers, this time it is string ctor wrappers, which
2398         pass a dummy string as 'this' instead of their obj argument. Fixes
2399         #478473.
2400
2401 2009-02-21  Jb Evain  <jbevain@novell.com>
2402
2403         * icall.c (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
2404         only get create_culture once.
2405
2406 2009-02-20  Zoltan Varga  <vargaz@gmail.com>
2407
2408         * reflection.c (mono_reflection_setup_internal_class): Move the user type
2409         check before the locking.
2410         
2411         * reflection.c (mono_reflection_setup_internal_class): Check for user types.
2412         (mono_reflection_create_runtime_class): Ditto.
2413         (mono_reflection_sighelper_get_signature_local): Ditto.
2414         (mono_reflection_sighelper_get_signature_field): Ditto.
2415
2416         * object-internals.h (CHECK_MONOTYPE): New macro to check that a Type object
2417         is a System.MonoType object or similar.
2418         (monotype_cast): New helper function to cast a MonoObject to a 
2419         MonoReflectionType object.
2420
2421         * object-internals.h: Change MonoReflectionType* members in structures to
2422         MonoObject* members to force the usage of the monotype_cast () function.
2423
2424         * reflection.c icall.c: Use monotype_cast () for accessing Type members of
2425         structures/arrays. This causes us to assert instead of crashing when 
2426         instances of user defined subclasses of System.Type are encountered.
2427
2428 2009-02-20 Gonzalo Paniagua Javier <gonzalo@novell.com>
2429
2430         * cil-coff.h:
2431         * icall-def.h:
2432         * icall.c: add new GetUnmanagedResourcePtr that returns a pointer to a
2433         win32 resource loaded from a PE file.
2434
2435         * image.c: fix mono_image_lookup_resource.
2436
2437 2009-02-20 Gonzalo Paniagua Javier <gonzalo@novell.com>
2438
2439         * icall-def.h:
2440         * threads-types.h:
2441         * threads.c: added internal call for WaitHandle.SignalAndWait.
2442
2443 2009-02-19  Bill Holmes  <billholmes54@gmail.com>
2444
2445         * cominterop.c : Adding cominterop_type_from_handle and 
2446           registering it as an icall.  Replacing all references
2447           to type_from_handle.
2448
2449         Code is contributed under MIT/X11 license.
2450
2451 2009-02-19 Rodrigo Kumpera  <rkumpera@novell.com>
2452
2453         * Makefile.am: Add lock-tracer.h and lock-trace.c.
2454
2455         * appdomain.c: Call the tracer init function.
2456
2457         * domain-internals.h: Enable the tracer for the domain locks.
2458
2459         * image.c: Enable the tracer for image locks.
2460
2461         * loader.c: Enable the trace for the loader lock.
2462
2463         * lock-tracer.h:
2464         * lock-tracer.c: Initial implementation of the lock trace utility.
2465         The tracer requires a compile time define to be enabled and a env var
2466         to be enabled at runtime.
2467
2468 2009-02-19 Rodrigo Kumpera  <rkumpera@novell.com>
2469
2470         * domain.c (mono_domain_code_foreach): Improve documentation.
2471
2472 2009-02-19 Rodrigo Kumpera  <rkumpera@novell.com>
2473
2474         * appdomain.c:
2475         * generic-sharing.c:
2476         * object.c:
2477         * reflection.c:  Adjust locking order to the new semantics where the loader lock
2478         comes first.
2479
2480 2009-02-18 Rodrigo Kumpera  <rkumpera@novell.com>
2481
2482         * domain.c: Add mono_domain_code_* functions that perform locking
2483         around the domain codeman.
2484
2485         * domain-internals.h: Export those functions.
2486
2487         * object.c: Use new functions instead of acquiring the domain lock.
2488
2489 2009-02-19  Zoltan Varga  <vargaz@gmail.com>
2490
2491         * marshal.c (mono_ftnptr_to_delegate): Convert a NULL ftnptr to a null
2492         delegate. Fixes #477396.
2493
2494 2009-02-18  Zoltan Varga  <vargaz@gmail.com>
2495
2496         * reflection.c (create_custom_attr): Get rid of alloca.
2497
2498 2009-02-18  Bill Holmes  <billholmes54@gmail.com>
2499
2500         * cominterop.c (cominterop_get_managed_wrapper_adjusted) :
2501           Adding exception handling for all CCW calls.
2502
2503         Code is contributed under MIT/X11 license.
2504
2505 2009-02-18  Zoltan Varga  <vargaz@gmail.com>
2506
2507         * reflection.c (mono_reflection_init): Remove the unused reflection mutex.
2508
2509         * marshal.c (emit_marshal_boolean): Add null checks to the new 
2510         native->managed marshalling code. Fixes #476247.
2511
2512 2009-02-17  Zoltan Varga  <vargaz@gmail.com>
2513
2514         * class.c (mono_class_get_vtable_entry): Move the addition of
2515         static rgctx invoke wrappers for vtable methods here, this simplifies
2516         a lot of code and causes fewer rgctx wrappers to be created.
2517
2518         * marshal.c (mono_marshal_get_static_rgctx_invoke): Change the
2519         name of the statistics to begin with an uppercase.
2520
2521 2009-02-17 Rodrigo Kumpera  <rkumpera@novell.com>
2522
2523         * reflection.c: Revert previous change as it breaks the build.
2524         
2525 2009-02-17 Rodrigo Kumpera  <rkumpera@novell.com>
2526
2527         * verify.c: Properly handle SZARRAY element type.
2528
2529         Fixes #474271.
2530
2531 2009-02-17 Rodrigo Kumpera  <rkumpera@novell.com>
2532
2533         * reflection.c (mono_image_create_method_token): Correctly encode
2534         MethodDef MemberRefParent token.
2535
2536         Fixes #472845.
2537
2538 2009-02-17  Zoltan Varga  <vargaz@gmail.com>
2539
2540         * image.c (mono_image_close): Delete the critical section before
2541         freeing the memory holding it.
2542
2543 2009-02-16 Rodrigo Kumpera  <rkumpera@novell.com>
2544
2545         * verify.c (mono_method_verify): rethrow opcode doesn not fall through.
2546         Fixes #476257.
2547
2548 2009-02-16 Rodrigo Kumpera  <rkumpera@novell.com>
2549
2550         * pedump.c (main): Call mono_marshal_init so pedump
2551         doesn't crash.
2552
2553 2009-02-16 Rodrigo Kumpera  <rkumpera@novell.com>
2554
2555         * loader.c (method_from_memberref): Properly fix #474271 and
2556         don't break the runtime bad.
2557
2558 2009-02-16  Zoltan Varga  <vargaz@gmail.com>
2559
2560         * domain.c (mono_domain_alloc): Add locking so the caller doesn't have to.
2561         (mono_domain_alloc0): Ditto.
2562
2563 2009-02-16 Rodrigo Kumpera  <rkumpera@novell.com>
2564
2565         * loader.c (method_from_memberref): Don't abort if the array
2566         method is not found. A regular loader failure is more informative
2567         and correct.
2568
2569         Fixes #474271.
2570
2571 2009-02-16 Rodrigo Kumpera  <rkumpera@novell.com>
2572
2573         *loader.c: Guard MonoImage::method_cache/methodref_cache
2574         using the image lock instead of the loader lock.
2575
2576         * metadata.h: Add comments about which fields are protected by
2577         the image lock.
2578
2579 2009-02-16  Zoltan Varga  <vargaz@gmail.com>
2580
2581         * appdomain.c (mono_set_private_bin_path_from_config): Fix a warning.
2582
2583         * generic-sharing.c (mono_method_construct_object_context): Remove the
2584         wrapper_type == NONE assert, it is not needed.
2585
2586 2009-02-15  Zoltan Varga  <vargaz@gmail.com>
2587
2588         * reflection.c (clear_cached_object): New helper function.
2589         (mono_method_clear_object): New function to clear the cached reflection
2590         objects for a dynamic method.
2591
2592         * object.c (mono_runtime_free_method): Call mono_method_clear_object ().
2593         Partly fixes # 463323.
2594         
2595 2009-02-14 Rodrigo Kumpera  <rkumpera@novell.com>
2596
2597         * class.c:
2598         * loader.c:
2599         * reflection.c: Remove all explicit uses of MonoImage::property_hash.
2600
2601 2009-02-14 Rodrigo Kumpera  <rkumpera@novell.com>
2602
2603         * image.c: Add mono_image_property_(lookup,insert,remove) functions that
2604         take the image lock instead of the loader lock.
2605
2606         * metadata-internals.h: Export new functions.
2607
2608 2009-02-12  Miguel de Icaza  <miguel@novell.com>
2609
2610         * domain.c (app_config_parse): Remove another use of stat that is
2611         not necessary as g_file_get_contents already does the presence
2612         check. 
2613
2614 2009-02-13  Zoltan Varga  <vargaz@gmail.com>
2615
2616         * cominterop.c icall-def.h: Fix the DISABLE_COM build.
2617
2618         * marshal.c: Move the bstr handling code to cominterop.c.
2619
2620         * marshal.c: Remove some COM interop code missed previously.
2621
2622 2009-02-12  Miguel de Icaza  <miguel@novell.com>
2623
2624         More Paolo patches from the Wii port:
2625         
2626         * security.c: Remove ves_icall_System_Environment_get_UserName
2627         from here.
2628
2629         * icall.c: And put ves_icall_System_Environment_get_UserName
2630         here. 
2631
2632         * appdomain.c (mono_set_private_bin_path_from_config): Remove
2633         redundant call to stat that was only used to test for the file
2634         existence.   Patch from Paolo.
2635
2636         * gc.c (run_finalize): If COM is disabled, do not link in
2637         mono_marshal_free_ccw.
2638
2639         * generic-sharing.c: Use alloca.h here as well.
2640
2641 2009-02-13 Rodrigo Kumpera  <rkumpera@novell.com>
2642
2643         * reflection.c (mono_reflection_lookup_dynamic_token): Do the locking properly.
2644
2645 2009-02-13  Zoltan Varga  <vargaz@gmail.com>
2646
2647         * cominterop.c cominterop.h: New files.
2648
2649         * marshal.c: Move the COM interop related code to cominterop.c. Make a few
2650         function/typedefs which are needed by cominterop.c global.
2651
2652 2009-02-12  Mark Probst  <mark.probst@gmail.com>
2653
2654         * generic-sharing.c: Don't take the loader lock to guard image
2655         mempool allocs.
2656
2657 2009-02-12 Rodrigo Kumpera  <rkumpera@novell.com>
2658
2659         * reflection.c (mono_reflection_lookup_dynamic_token): This function might be
2660         called without the loader lock which is required to guard MonoImage:tokens.
2661
2662 2009-02-12 Rodrigo Kumpera  <rkumpera@novell.com>
2663
2664         * class.c:
2665         * metadata.c:
2666         * method-builder.c:
2667         * marshal.c:
2668         * reflection.c: Don't take the loader lock to alloc memory from the image mempool.
2669
2670 2009-02-12 Rodrigo Kumpera  <rkumpera@novell.com>
2671
2672         * metadata.c: Remove mono_image_alloc_lock and mono_image_alloc0_lock.
2673         Rework the code to use regular mono_image_alloc/0.
2674
2675         * loader.c: Rework the code to use regular mono_image_alloc/0.
2676
2677         * metadata-internals.h: Remove mono_image_alloc_lock and mono_image_alloc0_lock.
2678
2679 2009-02-12  Bill Holmes  <billholmes54@gmail.com>
2680
2681         * object-internals.h : Fixing a typo in the 
2682           MonoReflectionComVisibleAttribute struct.
2683
2684         * marshal.c (cominterop_com_visible): Check the implemented 
2685           interfaces for ComImport.
2686
2687         * marshal.c (cominterop_get_native_wrapper_adjusted): For COM calls 
2688           assume that bools should be treated as VARIANTBOOLs.
2689
2690         * marshal.c (emit_marshal_boolean): Adding cases for 
2691           MARSHAL_ACTION_MANAGED_CONV_IN and MARSHAL_ACTION_MANAGED_CONV_OUT.
2692
2693         * marshal.c (mono_marshal_emit_managed_wrapper): Adding calls to 
2694           emit_marshal MARSHAL_ACTION_MANAGED_CONV_IN and OUT for bools.
2695
2696         * marshal.c (cominterop_get_ccw): For COM calls assume that bools
2697           should be treated as VARIANTBOOLs.    
2698
2699         Code is contributed under MIT/X11 license.
2700
2701 2009-02-12 Rodrigo Kumpera  <rkumpera@novell.com>
2702
2703         * image.c (mono_image_alloc, mono_image_alloc0, mono_image_strdup): Guard mempool
2704         allocation with the image lock.
2705
2706 2009-02-12 Rodrigo Kumpera  <rkumpera@novell.com>
2707
2708         This patch is the last of a series to remove explicit reference of MonoImage::mempool
2709         and use mono_image_alloc set of functions instead. This time we finish with reflection.c
2710
2711         * object.c: Add mono_string_to_utf8_image.
2712
2713         * object-internals.h: Export mono_string_to_utf8_image.
2714
2715         * reflection.c: Rework all explicit references to the the image mempool to go thought
2716         the mono_image_alloc set of functions.
2717
2718 2009-02-12 Rodrigo Kumpera  <rkumpera@novell.com>
2719
2720         This patch is the third of a series to remove explicit reference of MonoImage::mempool
2721         and use mono_image_alloc set of functions instead. This time we finish with marshal.c
2722         and generics-sharing.c.
2723
2724         * generics-sharing.c (set_other_info_templates): Take a MonoImage instead of a MonoMemPool
2725         as first argument. Note that this function remains broken as it doesn't perform locking around the
2726         mempool allocation.
2727
2728         * generics-sharing.c (rgctx_template_set_other_slot): Pass the image and not the mempool.
2729
2730         * image.c: Add g_slist_append_image.
2731
2732         * metadata.c (mono_metadata_field_info_with_mempool): Remove the mempool argument and use
2733         the supplied image for allocation. Move code into mono_metadata_field_info_full.
2734
2735         * metadata.c (mono_metadata_parse_marshal_spec_full): Take a MonoImage instead of a MonoMemPool.
2736         Fix all related code to do the same.
2737
2738         * marshal.c (mono_marshal_load_type_info): Pass the image instead of the mempool.
2739
2740         * metadata-internals.h: Fix the signatures.
2741
2742 2009-02-12 Rodrigo Kumpera  <rkumpera@novell.com>
2743
2744         This patch is the second of a series to remove explicit reference of MonoImage::mempool
2745         and use mono_image_alloc set of functions instead. This time we rework mono_metadata_type_dup
2746         and similar to work using MonoImage.
2747
2748         * class.c (mono_mempool_dup): Rename to mono_image_memdup and take a MonoImage instead of a
2749         MonoMemPool.
2750
2751         * class.c (mono_dup_array_type): Take a MonoImage instead of a MonoMemPool as first argument.
2752
2753         * class.c (mono_metadata_signature_deep_dup): Same.
2754
2755         * class.c (inflate_generic_type): Same.
2756
2757         * class.c (mono_class_inflate_generic_type_with_mempool): Same.
2758
2759         * metadata.c (mono_metadata_signature_dup_full): Same.
2760
2761         * metadata.c: Add mono_metadata_signature_dup_mempool and extract common functionality from 
2762         mono_metadata_signature_dup_full.
2763
2764         * metadata.c (mono_metadata_type_dup): Same.
2765
2766         * marshal.c: Pass the image to calls to mono_metadata_type_dup.
2767
2768         * reflection.c: Same.
2769
2770         * generic-sharing.c: Pass the image to calls to mono_class_inflate_generic_type_with_mempool.
2771
2772         * metadata-internals.h: Fix the signatures.
2773
2774         * class-internals.h: Same.
2775
2776 2009-02-11 Rodrigo Kumpera  <rkumpera@novell.com>
2777
2778         This patch is the first of a series to remove explicit reference of MonoImage::mempool
2779         and use mono_image_alloc set of functions instead. 
2780
2781         * class.c (mono_class_inflate_generic_type_with_mempool_no_copy):
2782         Rename to mono_class_inflate_generic_type_no_copy and take a MonoImage instead
2783         of a MonoMemPool.
2784
2785         * class.c (mono_class_setup_fields): Adapt to mono_class_inflate_generic_type_no_copy.
2786
2787         * class.c (g_list_prepend_mempool): Removed.
2788
2789         * class.c (mono_class_get_nested_types): Use g_list_prepend_image instead of g_list_prepend_mempool.
2790
2791         * image.c: Add g_list_prepend_image.
2792
2793         * metadata-internals.h (struct MonoImage): Fix comment. Export g_list_prepend_image as internal.
2794
2795         * reflection.c (mono_reflection_create_runtime_class): Use g_list_prepend_image instead of g_list_prepend_mempool.
2796
2797
2798 2009-02-11 Rodrigo Kumpera  <rkumpera@novell.com>
2799
2800         * metadata-internals.h (struct MonoImage): Add lock field. Export mono_image_lock and
2801         mono_image_unlock.
2802
2803         * image.c (mono_image_init): Init the lock field.
2804  
2805         * image.c (mono_image_init): Cleanup the lock field.
2806
2807         * image.c: Add mono_image_(un)lock functions.
2808
2809 2009-02-11  Mark Probst  <mark.probst@gmail.com>
2810
2811         * class.c, class-internals.h: mono_method_get_context_general()
2812         combines the functionality of mono_method_get_context() and
2813         mini_method_get_context().
2814
2815         * generic-sharing.c, domain-internals.h:
2816         mono_method_construct_object_context() and
2817         mono_domain_lookup_shared_generic() moved from mini.
2818
2819         * icall.c (ves_icall_InternalInvoke): Handle the case where the
2820         method doesn't have the correct instantiation because it's shared
2821         generic code.  Fixes #473999.
2822
2823 2009-02-11  Zoltan Varga  <vargaz@gmail.com>
2824
2825         * loader.c (mono_method_get_wrapper_data): Handle inflated methods as well.
2826
2827         * loader.c (mono_loader_lock): Add a comment pointing to the locking document.
2828         
2829 2009-02-11 Rodrigo Kumpera  <rkumpera@novell.com>
2830
2831         * metadata.c: Make mono_image_alloc_lock and mono_image_alloc0_lock non static.
2832
2833         * metadata-internals.h: Export mono_image_alloc_lock and mono_image_alloc0_lock.
2834
2835         * loader.c (mono_get_method_full): Drop the loader lock while constructing the method
2836         and recheck the cache for dups after it.
2837
2838         * loader.c (mono_get_method_from_token): Use _lock version of mono_image_alloc0.
2839
2840         Fixes one of the deadlocks found in #473150.
2841
2842 2009-02-11  Bill Holmes  <billholmes54@gmail.com>
2843
2844         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Accept_internal):
2845           For Win32, add additional break conditions for accept.
2846
2847         Code is contributed under MIT/X11 license.
2848
2849 2009-02-10  Zoltan Varga  <vargaz@gmail.com>
2850
2851         * marshal.c (mono_marshal_get_native_func_wrapper): Use get_cache to
2852         lazily initialize the native wrapper cache.
2853         (mono_marshal_get_native_wrapper): Put aot-ed native wrappers into a separate
2854         cache, since they are different from the normal wrappers.
2855
2856         * image.c (mono_image_init): Initialize native_wrapper_cache lazily as well.
2857
2858         * metadata-internals.h (struct _MonoImage): Add a new wrapper for
2859         AOT compiled native wrappers.
2860
2861 2009-02-09  Geoff Norton  <gnorton@novell.com>
2862
2863         * appdomain.h:
2864         * security-core-clr.c: Allow enabling core-clr from the embedding
2865         API.
2866
2867 2009-02-07 Gonzalo Paniagua Javier <gonzalo@novell.com>
2868
2869         * socket-io.c: when requesting all the local ips, if there are no
2870         interfaces up and running, MS returns 127.0.0.1.
2871
2872 2009-02-07 Gonzalo Paniagua Javier <gonzalo@novell.com>
2873
2874         * mono-perfcounters-def.h: processor time is an inverse time.
2875         Fixes bug #468625.
2876
2877 2009-02-07 Gonzalo Paniagua Javier <gonzalo@novell.com>
2878
2879         * socket-io.c: an empty host name returns the list of local IPs.
2880         Fixes bug #386637 part 1/2.
2881
2882 2009-02-07  Zoltan Varga  <vargaz@gmail.com>
2883
2884         * verify.c (mono_class_interface_implements_interface): Call
2885         mono_class_setup_interfaces ().
2886         (merge_stacks): Ditto.
2887
2888 2009-02-06  Zoltan Varga  <vargaz@gmail.com>
2889
2890         * class.c (mono_class_setup_interfaces): New function to lazily initalize
2891         klass->interfaces.
2892         (mono_generic_class_get_class): Don't initalize klass->interfaces.
2893         (mono_generic_class_get_class): Ditto.
2894
2895 2009-02-06  U-QUACK\miguel  <miguel@quack>
2896
2897         * icall-defs.h: Include also the Encrypt/Decrypt string methods as
2898         they live in security.c
2899
2900         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Integrated
2901         another bit from Paolo's code.
2902
2903 2009-02-06  Zoltan Varga  <vargaz@gmail.com>
2904
2905         * object.c (build_imt_slots): Add a small optimization to avoid inflating
2906         methods which will be discarded by add_imt_builder_entry ().
2907
2908         * marshal.c (get_runtime_invoke_type): Avoid sharing enum types since they
2909         need to be boxed.
2910
2911         * loader.c: Add a statistics for the size of the memberref signature cache.
2912         
2913         * loader.c (find_cached_memberref_sig): New helper function.
2914         (cache_memberref_sig): Ditto.
2915
2916         * loader.c: Cache the result of parsing memberref signatures, since otherwise
2917         they will be parsed again for every generic instantiation, leading to unbounded
2918         memory growth.
2919
2920 2009-02-05  Zoltan Varga  <vargaz@gmail.com>
2921
2922         * loader.c (mono_get_method_from_token): Avoid creating class for the generic
2923         parameters of generic methods.
2924
2925         * class.c (mono_class_inflate_generic_method_full): Set is_mb_open again
2926         after the original method is copied to the inflated method.
2927         (mono_class_get_vtable_entry): Handle rgctx invoke wrappers more efficiently.
2928
2929         * class-internals.h (struct _MonoMethodInflated): Move the is_mb_open
2930         field to MonoMethod since it only consumes 1 bit there, and 4/8 bytes here.
2931
2932         * class.c metadata.c: Update after the changes above.
2933
2934 2009-02-05 Rodrigo Kumpera  <rkumpera@novell.com>
2935
2936         * metadata-verify.c: Simplified error handling and added
2937         section table validation.
2938
2939 2009-02-05  Zoltan Varga  <vargaz@gmail.com>
2940
2941         * class-internals.h (MonoClassExt): New structure containing rarely used
2942         fields of MonoClass.
2943         (struct _MonoClass): Move rarely used fields to MonoClassExt, accessed
2944         through a new 'ext' field.
2945
2946         * class.c (mono_class_alloc_ext): New helper function to allocate 
2947         class->ext.
2948
2949         * class.c metadata.c reflection.c: Update after MonoClass structure changes.
2950
2951 2009-02-05  Mark Probst  <mark.probst@gmail.com>
2952
2953         * object.c (mono_object_get_virtual_method): Properly inflate
2954         generic methods.  Fixes #472692.
2955
2956 2009-02-05 Rodrigo Kumpera  <rkumpera@novell.com>
2957
2958         * class.c (mono_class_create_from_typedef): The CLR supports SystemF
2959         recursive types such as List<T>:Cons<T,List<T>> so when doing the lookup
2960         for the parent type, the created type must be ready to be used on a generic
2961         instantiation.
2962         We fill this_arg/byval_arg if the parent is a generic instance to make sure
2963         we won't have duplicated entries in generic_inst_cache.
2964
2965         Fixes #469553.
2966
2967 2009-02-05  Miguel De Icaza  <miguel@novell.com>
2968
2969         * threadpool.c (socket_io_add_poll): Remove the BSD6 define and
2970         replace with plain BSD per the comments on the bug MONO77637.
2971
2972 2009-02-05  Zoltan Varga  <vargaz@gmail.com>
2973
2974         * class.c (mono_class_get_generic_class): New accessor function.
2975         (mono_class_get_generic_container): Ditto.
2976
2977         * class-internals.h (struct _MonoClass): Add 'is_generic' and 'is_inflated'
2978         fields, similar to the ones in MonoMethod.
2979
2980         * class.c (mono_generic_class_get_class): Set klass->is_inflated.
2981         (mono_class_create_from_typedef): Set klass->is_generic if needed.
2982
2983         * reflection.c (mono_reflection_create_generic_class): Set klass->is_generic.
2984         
2985         * class-internals.h (struct _MonoClass): Remove enum_basetype, it contains
2986         the same information as element_class->byval_arg.
2987
2988         * class.c reflection.c: Remove references to class->byval_arg.
2989
2990         * class.c marshal.c: Use mono_class_enum_basetype () instead of accessing 
2991         klass->enum_basetype directly.
2992
2993         * verify.c metadata.c object.c icall.c reflection.c: Use 
2994         mono_class_enum_basetype () instead of accessing klass->enum_basetype 
2995         directly.
2996
2997 2009-02-04  Miguel de Icaza  <miguel@novell.com>
2998
2999         * icall-def.h: Remove internal calls for sockets when
3000         DISABLE_SOCKET is defined, file system writing features when the
3001         OS only support reading and not writing data and Policy support if
3002         the Policy is disabled.
3003         
3004         * image.c (do_mono_image_open): Apply Paolo's patches for using
3005         mono_file_map_ APIs here.
3006
3007         * assembly.c: Add support for platforms to avoid prefix
3008         auto-detection. 
3009
3010 2009-02-04  Zoltan Varga  <vargaz@gmail.com>
3011
3012         * generic-sharing.c (mono_method_fill_runtime_generic_context): Fix a
3013         warning.
3014
3015         * class.c (mono_class_inflate_generic_class): New helper function.
3016
3017         * class.c: Use mono_class_inflate_generic_class in a few places. Add
3018         statistics for inflated methods/classes.
3019
3020         * loader.c (inflate_generic_header): Use mono_class_inflate_generic_class.
3021
3022         * icall.c (ves_icall_Type_GetMethodsByName): Optimize the case when
3023         the call is made from Delegate.CreateDelegate () for the invoke method of
3024         a delegate.
3025
3026         * loader.c: Add a statistics for the memory occupied by inflated signatures.
3027
3028         * metadata.c (mono_metadata_signature_size): New helper function.
3029
3030         * class.c (mono_class_get_method_from_name_flags): Add an optimization for
3031         generic instances.
3032
3033         * metadata.c (inflated_method_in_image): Avoid calling 
3034         mono_method_signature () if the method does not already have a signature.
3035
3036 2009-02-03 Rodrigo Kumpera  <rkumpera@novell.com>
3037
3038         * verify.c (is_compatible_boxed_valuetype): When checking if the boxed 
3039         valuetype is compatible with target type, check by inheritance as a
3040         VT is not really compatible with System.ValueType, for example.
3041
3042         * verify.c (do_invoke_method): Improve error message.
3043
3044         * verify.c (do_box_value): If boxing a nullable, use the type argument
3045         on stack instead.
3046
3047         * verify.c (do_newobj): Improve error message.  
3048
3049         Fixes #469549.
3050
3051 2009-02-03  Miguel de Icaza  <miguel@novell.com>
3052
3053         * appdomain.c: Add support for DISABLE_SOCKETS and DISABLE_SHADOW_COPY
3054
3055 2009-02-03  Mark Probst  <mark.probst@gmail.com>
3056
3057         * generic-sharing.c: Don't hold domain lock when calling
3058         instantiate_other_info().  Fixes #471958.
3059
3060         * domain-internals.h, loader.c: Describe locking policy of domain
3061         lock vs loader lock.
3062
3063 2009-02-03 Rodrigo Kumpera  <rkumpera@novell.com>
3064
3065         * verify.c (mono_delegate_signature_equal): Make it possible to check
3066         first-arg-bound delegates to static method.
3067
3068         * verify.c (verify_delegate_compatibility): Correctly verify delegates to
3069         static methods with the first arg bound.
3070
3071         Fixes #469529.
3072
3073 2009-02-03 Rodrigo Kumpera  <rkumpera@novell.com>
3074
3075         * verify.c: Added stack_slot_full_name to provide decent and more meanfull
3076         errors.
3077
3078         * verify.c (is_compatible_boxed_valuetype): Be less restrictive when not
3079         under strict mode. Any type, when boxed can be seen as a reference type.
3080
3081         Fixes #469528.
3082
3083 2009-02-03 Rodrigo Kumpera  <rkumpera@novell.com>
3084
3085         * object.h: The lower bound of an array is a signed integer value.
3086         Introduce mono_array_lower_bound_t typedef. It should be used instead of
3087         gint32 as under MONO_BIG_ARRAYS it will be a gint64.
3088
3089         * icall.c: Cast MonoArrayBounds::length to a signed value so correctly
3090         calculate the upper bound.
3091         
3092         Fixes #471252.
3093
3094 2009-02-02  Miguel de Icaza  <miguel@novell.com>
3095
3096         From Paolo's work, refactored, cleared up:
3097         
3098         * threadpool.c, icall.c: ifdef code that requires a working socket
3099         stack.
3100
3101         * metadata.c (mono_metadata_field_info): Do not attempt to return
3102         a value from a function declared as void.
3103
3104         * console-io.c: Use MONO_NULL_TTYDRIVER to remove the tty driver
3105         from the console stack.
3106
3107         * assembly.c: use strrchr instead of rindex.
3108
3109         * class.c, object.c, marshal.c, icall.c, reflection.c: include
3110         alloca.h on systems that have it.
3111
3112         * environment.c: Avoid code that uses stuff from
3113         HAVE_SYS_UTSNAME_H
3114         
3115         * appdomain.c: Include sys/time.h.
3116
3117         * console-io.c: include sys/ioctl.h if it is available.
3118
3119 2009-02-03  Zoltan Varga  <vargaz@gmail.com>
3120
3121         * method-builder.h (_MonoMethodBuilder): Add a 'skip_visibility' flag.
3122
3123         * method-builder.c (mono_mb_create_method): Set method->skip_visibility from
3124         the method builder.
3125
3126         * marshal.c: Set mb->skip_visibility instead of setting it on the method
3127         after it was created and cached, as the later is not thread safe.
3128         
3129 2009-02-02  Zoltan Varga  <vargaz@gmail.com>
3130
3131         * mono-debug.c (mono_debug_print_stack_frame): Avoid crashes when this is
3132         called while the debugging module is not initialized. Fixes #471669.
3133
3134 2009-02-02 Rodrigo Kumpera  <rkumpera@novell.com>
3135
3136         * icall.c (type_from_name): Ignore reflection frames to find out the real caller.
3137
3138         Fixes #471255.
3139
3140 2009-02-02  Mark Probst  <mark.probst@gmail.com>
3141
3142         * generic-sharing.c (lookup_or_register_other_info): Make sure the
3143         loader lock is not taken while the templates lock is held.  Fixes
3144         #471089.
3145
3146 2009-02-02  Mark Probst  <mark.probst@gmail.com>
3147
3148         * metadata.c (type_in_image): Added a check to fix a monodis
3149         crash.
3150
3151 2009-02-02  Zoltan Varga  <vargaz@gmail.com>
3152
3153         * marshal.c (mono_marshal_get_runtime_invoke): Add support for byref
3154         nullable arguments.
3155
3156         * object.c (mono_runtime_invoke_array): Ditto.
3157         
3158         * marshal.c (mono_marshal_free_dynamic_wrappers): New function for
3159         freeing wrappers of dynamic methods.
3160
3161         * loader.c (mono_free_method): Call it. Fixes #463323.
3162         
3163         * marshal.c (mono_marshal_get_runtime_invoke): Disable sharing for
3164         methods taking vtype/byref arguments, to fix yet another bug caused by
3165         the sharing of runtime invoke wrappers. Partly fixes #471259.
3166
3167 2009-02-01  Zoltan Varga  <vargaz@gmail.com>
3168
3169         * debug-mono-symfile.c (check_line): Return NULL instead of returning
3170         <first file in file table>:1 when the IL offset does not have an associated
3171         line number.
3172
3173 2009-01-31  Zoltan Varga  <vargaz@gmail.com>
3174
3175         * mono-debug.c (mono_debug_lookup_locals): New function to return local
3176         variable info for a method.
3177
3178         * debug-mono-symfile.c (mono_debug_symfile_lookup_locals): Ditto.
3179         
3180 2009-01-30  Jb Evain  <jbevain@novell.com>
3181
3182         * pedump.c: reuse code from monodis to make sure pedump honors
3183         MONO_PATH, which is needed to verify net_2_1 assemblies.
3184
3185 2009-01-29  Zoltan Varga  <vargaz@gmail.com>
3186
3187         * mono-debug.c (mono_debug_print_stack_frame): Print the IL offset even when
3188         there is no line number info.
3189
3190 2009-01-29  Raja R Harinath  <harinath@hurrynot.org>
3191
3192         Avoid some MonoType allocations
3193         * reflection.c (mono_reflection_initialize_generic_parameter):
3194         Reuse MonoType from param->pklass rather than allocating one.
3195         (mono_dynamic_image_free): Update to changes.
3196
3197 2009-01-28  Raja R Harinath  <harinath@hurrynot.org>
3198
3199         Rearrange some code to improve consistency
3200         * reflection.c (mono_reflection_setup_generic_class): Move body ...
3201         (mono_reflection_initialize_generic_parameter): ... here.
3202
3203 2009-01-28  Zoltan Varga  <vargaz@gmail.com>
3204
3205         * generic-sharing.c (has_constraints): Enable gshared for methods/classes
3206         with type constraints as an experiment.
3207
3208         * boehm-gc.c (on_gc_notification): Update mono_stats.
3209
3210 2009-01-28  Raja R Harinath  <harinath@hurrynot.org>
3211
3212         Avoid some allocations
3213         * class-internals.h (_MonoGenericInst::type_argv): Convert from
3214         pointer to tail array to avoid extra allocation.
3215         * metadata.c (free_generic_inst): Update to changes.
3216         (mono_metadata_get_generic_inst): Likewise.  Use alloca instead of
3217         on-stack struct.
3218
3219 2009-01-27  Zoltan Varga  <vargaz@gmail.com>
3220
3221         * icall.c (ves_icall_System_Type_EqualsInternal): For user-defined types,
3222         return TRUE if the two type objects are the same.
3223
3224 2009-01-26  Zoltan Varga  <vargaz@gmail.com>
3225
3226         * marshal.c (mono_marshal_load_type_info): Fill out info->min_align.
3227         (mono_class_native_size): Use klass->marshal_info->min_align instead of
3228         klass->min_align, since klass->min_align contains the managed alignment,
3229         while the native alignment can be different, like for longs on x86.
3230         Fixes #469135.
3231
3232         * class-internals.h (MonoMarshalType): Add a min_align field.
3233
3234 2009-01-26 Rodrigo Kumpera  <rkumpera@novell.com>
3235
3236         * assembly.c (mono_assembly_try_decode_skip_verification): Add a hack to check
3237         the 1.0 format.
3238
3239 2009-01-26  Zoltan Varga  <vargaz@gmail.com>
3240
3241         * domain-internals.h (struct _MonoJitInfo): Add a 'from_aot' field plus
3242         some comments about the usage of the used_regs field.
3243
3244         * marshal.c (emit_marshal_ptr): Allow pointers to blittable structures.
3245         Fixes #469217.
3246
3247 2009-01-24 Gonzalo Paniagua Javier <gonzalo@novell.com>
3248
3249         * appdomain.c: return NULL instead of throwing FileNotFoundException
3250         when LoadAssembly() fails.
3251
3252 2009-01-23  Mark Probst  <mark.probst@gmail.com>
3253
3254         * metadata.c (mono_metadata_generic_param_equal): Only compare the
3255         image if the owner is NULL.  Fixes the AOT failures.
3256
3257 2009-01-23  Zoltan Varga  <vargaz@gmail.com>
3258
3259         * metadata.c (mono_metadata_load_generic_params): Initialize the 
3260         MonoGenericParam structure using memset so the image field is initialized
3261         as well.
3262
3263 2009-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
3264
3265         * appdomain.c (mono_domain_unload): Change the InterlockedIncrement to
3266         a plain store.
3267
3268 2009-01-21  Zoltan Varga  <vargaz@gmail.com>
3269
3270         * class.c (mono_class_setup_vtable_general): In the generic instance
3271         optimization, set method->slot for abstract virtual methods. Fixes part of
3272         #467834.
3273
3274 2009-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
3275
3276         * domain-internals.h: Add new appdomain state MONO_APPDOMAIN_UNLOADING_START
3277         which signals that the unloading has started but all appdomain services must
3278         remain operational.
3279
3280         * appdomain.c (mono_domain_unload): The initial state for unloading now
3281         is unloading_start and we switch to unloading after the managed call to
3282         AppDomain::DomainUnload has finished.
3283
3284         The new unloading state has to be created because managed code in the
3285         DomainUnload event can depend on things like the threadpool still working.
3286         The domain must remain fully functional while the event executes.
3287
3288         This shown as an issue due to Process::WaitForExit, which waits for
3289         async reads of stdout and stderr to complete. Since those are processed
3290         in the threadpool the code deadlocks because the DomainUnload callback 
3291         waits for the async read finished event, which should have been set by a
3292         threadpool job but has been discarded due to the domain been in unload
3293         state.
3294
3295 2009-01-21  Mark Probst  <mark.probst@gmail.com>
3296
3297         * metadata.c (mono_metadata_generic_param_equal): Owner as well as
3298         image must match.
3299
3300 2009-01-21  Mark Probst  <mark.probst@gmail.com>
3301
3302         * reflection.c (resolve_object): For fields, inflate the class and
3303         then get the field in the inflated class.
3304
3305 2009-01-20  Mark Probst  <mark.probst@gmail.com>
3306
3307         * object-internals.h (struct _MonoException): Added a comment
3308         explaining the new use of trace_ips.
3309
3310 2009-01-20  Mark Probst  <mark.probst@gmail.com>
3311
3312         * generic-sharing.c (inflate_other_data): Inflate array methods
3313         correctly.
3314
3315         * loader.c, class-internals.h: Rename search_in_array_class() to
3316         mono_method_search_in_array_class() and make it non-static.
3317
3318 2009-01-19  Zoltan Varga  <vargaz@gmail.com>
3319
3320         * metadata.c (inflated_signature_in_image): Call signature_in_image as well.
3321         Hopefully fixes #458168.
3322
3323 2009-01-19  Christian Hergert  <christian.hergert@gmail.com>
3324
3325         * object.c (mono_raise_exception): Remove call to InterlockedIncrement
3326         as it is performed elsewhere.
3327
3328         Code is contributed under MIT/X11 license
3329
3330 2009-01-19  Christian Hergert  <christian.hergert@gmail.com>
3331
3332         * mono-perfcounters-def.h: Add counters for asp.net requests total and
3333         requests queued.
3334         * object.c (mono_raise_exception): Increment the exceptions total
3335         counter when an exception is thrown.
3336         * class-internals.h: Add a location for storing the total number of
3337         asp.net requests served.
3338         * mono-perfcounters.c: Implement update support for asp.net counters
3339         from the class libraries. Implement read support for asp.net counters
3340         and exceptions total counter.
3341
3342 2009-01-19  Zoltan Varga  <vargaz@gmail.com>
3343
3344         * loader.c (search_in_array_class): Call mono_class_setup_methods () before
3345         accessing klass->methods. Fixes #467385.
3346
3347 2009-01-18  Zoltan Varga  <vargaz@gmail.com>
3348
3349         * marshal.c (emit_marshal_custom): Avoid calling MarshalNativeToManaged
3350         for byval arguments without an [Out] attribute. Fixes #467212.
3351
3352         * attach.c: Applied patch from Koushik Dutta (koush@koushikdutta.com). 
3353         Fix compilation under android.
3354         
3355         * sgen-gc.c: Instead of scanning gray objects after all roots have been 
3356         processed, scan them directly after they are copied, to achieve better locality
3357         and cache usage.
3358
3359         * socket-io.c: Applied patch from Koushik Dutta
3360         (koush@koushikdutta.com). Disable IPV6 when running under android.
3361
3362 2009-01-18  Zoltan Varga  <vargaz@gmail.com>
3363
3364         * icall.c (ves_icall_InternalExecute): Add write barriers.
3365
3366         * marshal.c (mono_marshal_get_write_barrier): Remove, this is now done in
3367         the GC code.
3368
3369         * sgen-gc.c: Implement write barriers in IL code.
3370
3371 2009-01-17  Geoff Norton  <gnorton@novell.com>
3372
3373         * image.c: Avoid trying to walk the reference table of dynamic assemblies.
3374
3375 2009-01-17  Geoff Norton  <gnorton@novell.com>
3376
3377         * image.c: When unloading the image->references table, there can be gaps
3378         in it.  Ensure that we iterate every entry to avoid leaking assembly references
3379         when unloading an appdomain.
3380
3381 2009-01-16  Zoltan Varga  <vargaz@gmail.com>
3382
3383         * sgen-gc.c: Add support for allocating a nursery at an aligned address, to
3384         speed up ptr-in-nursery checks.
3385
3386         * threads.c (mono_threads_abort_appdomain_threads): Abort threads outside the
3387         threads_lock () to prevent deadlocks.
3388
3389         * sgen-gc.c gc-internal.h: Add a new root type root-with-wbarrier, which
3390         does not need to be scanned during minor collections, since writes to it
3391         must use write barriers.
3392
3393 2009-01-15 Rodrigo Kumpera  <rkumpera@novell.com>
3394
3395         * metadata-verify.c: Add pe nt header verification.
3396         
3397 2009-01-15  Zoltan Varga  <vargaz@gmail.com>
3398
3399         * gc.c: Fix a few warnings when using SGEN.
3400
3401 2009-01-14 Rodrigo Kumpera  <rkumpera@novell.com>
3402
3403         * metadata-verify.c: Add pe optional header verification.
3404
3405 2009-01-15  Zoltan Varga  <vargaz@gmail.com>
3406
3407         * sgen-gc.c: Add support for user defined marker functions, used by
3408         MonoGHashTable to avoid registering a GC root for every hash node.
3409
3410 2009-01-14  Zoltan Varga  <vargaz@gmail.com>
3411
3412         * sgen-gc.c: Fix warnings. Optimize copy_object () a bit. Split pinned/
3413         non-pinned roots into separate hashes to avoid having to traverse them
3414         in functions which are only interested in one kind.
3415
3416 2009-01-13 Rodrigo Kumpera  <rkumpera@novell.com>
3417
3418         * metadata-verify.c: Add pe header machine field verification.
3419         
3420 2009-01-13 Rodrigo Kumpera  <rkumpera@novell.com>
3421
3422         * metadata-verify.c: Add pe header size verification.
3423
3424 2009-01-14  Zoltan Varga  <vargaz@gmail.com>
3425
3426         * reflection.c (ALLOC_REFENTRY): Don't allocate the ReflectionEntry structures
3427         using the GC, they don't contain references.
3428
3429         * domain.c (mono_domain_create): Create ldstr_table using MONO_HASH_KEY_VALUE_GC.
3430
3431 2009-01-13  Geoff Norton  <gnorton@novell.com>
3432
3433         * appdomain.c|h: Expose mono_domain_unload to the embedding api so that 
3434         AppDomains created on the native side can be cleaned up on the native side.
3435
3436 2009-01-13  Geoff Norton  <gnorton@novell.com>
3437
3438         * appdomain.c: Ensure that we call mono_context_init for the embedding api
3439         as well as the managed api.
3440
3441 2009-01-13  Geoff Norton  <gnorton@novell.com>
3442
3443         * appdomain.h|c: New API for creating a MonoDomain in the embedding api
3444         with a MonoAppDomain initialized against it.
3445
3446 2009-01-13  Zoltan Varga  <vargaz@gmail.com>
3447
3448         * reflection.c (MOVING_GC_REGISTER): Fix a warning.
3449         
3450         * reflection.c (mono_image_get_generic_param_info): Use MOVING_GC_REGISTER.
3451
3452         * marshal.c: Avoid setting the exception clauses after a method has been entered 
3453         into the wrapper caches. Fixes #465700.
3454
3455         * method-builder.c (mono_mb_set_clauses): New function to set the clauses of the
3456         method builder.
3457         (mono_mb_create_method): Set the clauses from the method builder.
3458
3459 2009-01-13 Gonzalo Paniagua Javier <gonzalo@novell.com>
3460
3461         * threadpool.c: include sys/socket.h. Fixes compilation on FreeBSD.
3462         Patch from Makoto Kishimoto.
3463
3464 2009-01-13  Zoltan Varga  <vargaz@gmail.com>
3465
3466         * sgen-gc.c (mono_gc_make_descr_from_bitmap): Handle large bitmaps by 
3467         encoding them as ROOT_DESC_COMPLEX.
3468         (precisely_scan_objects_from): Implement support for ROOT_DESC_COMPLEX.
3469
3470 2009-01-12  Zoltan Varga  <vargaz@gmail.com>
3471
3472         * sgen-gc.c (scan_from_remsets): Clear the global remset of pointers which
3473         no longer point to the nursery.
3474
3475         * sgen-gc.c: Add a few comments/FIXMEs.
3476         
3477         * sgen-gc.c: Implement scanning of the alloc_pinned objects.
3478
3479         * marshal.c (mono_marshal_get_synchronized_wrapper): Make the 
3480         initialization of the various _method variables thread safe. Fixes
3481         #465377.
3482
3483 2009-01-12  Mark Probst  <mark.probst@gmail.com>
3484
3485         * domain.c, domain-internals.h: Remove the shared_generics_hash
3486         and its lookup functions.
3487
3488 2009-01-12  Bill Holmes  <billholmes54@gmail.com>
3489
3490         * socket-io.c:  Fixing the MSVC build. 
3491
3492         Code is contributed under MIT/X11 license.
3493
3494 2009-01-12 Rodrigo Kumpera  <rkumpera@novell.com>
3495
3496         * metadata-verify.c: Add pe header watermark verification.
3497
3498 2009-01-09 Rodrigo Kumpera  <rkumpera@novell.com>
3499
3500         * metadata-verify.c: Add lfanew verification.
3501
3502 2009-01-12  Jb Evain  <jbevain@novell.com>
3503
3504         * tabldefs.h: rename METHOD_ATTRIBUTE_CHECK_ACCESS_ON_OVERRIDE to
3505         METHOD_ATTRIBUTE_STRICT to match the ECMA terminology.
3506
3507 2009-01-10  Zoltan Varga  <vargaz@gmail.com>
3508
3509         * socket-io.c: Fix the build.
3510
3511         * environment.c: Fix an #ifdef.
3512
3513 2009-01-09  Zoltan Varga  <vargaz@gmail.com>
3514
3515         * threadpool.c (async_invoke_thread): Handle the wait function returning
3516         WAIT_IO_COMPLETION as well.
3517         (async_invoke_io_thread): Ditto.
3518
3519 2009-01-09  Bill Holmes  <billholmes54@gmail.com>
3520
3521         * threads.c: Fixing the Windows build.
3522
3523         Code is contributed under MIT/X11 license.
3524
3525 2009-01-09  Zoltan Varga  <vargaz@gmail.com>
3526  
3527         * threads.c (signal_thread_state_change): Call wapi_interrupt_thread () to
3528         interrupt a wait.
3529         (mono_thread_execute_interruption): Call wapi_clear_interruption () to enable
3530         the thread to wait again.
3531
3532 2009-01-09 Rodrigo Kumpera  <rkumpera@novell.com>
3533
3534         * metadata-verify.c: Initial skeleton of the metadata verifier.
3535
3536         * pedump.c: Add support for the metadata verifier.
3537
3538         * verify-internal.h: Export the whole assembly metadata verifier function.
3539
3540 2009-01-09 Rodrigo Kumpera  <rkumpera@novell.com>
3541
3542         * gc.c (mono_gc_init): Fix the comments about deadlock on windows.
3543
3544 2009-01-09  Zoltan Varga  <vargaz@gmail.com>
3545
3546         * Makefile.am: Upgrade dtrace-prelink.sh location.
3547
3548 2009-01-08 Rodrigo Kumpera  <rkumpera@novell.com>
3549
3550         * gc.c (mono_gc_init): Wait for finalizer thread to init on windows as
3551         well. Otherwise the shutdown deadlock that happens on unix will can happen
3552         as well.
3553         If the main thread code finishes too fast it's possible that the finalizer
3554         thread won't have executed yet, won't record itself as the finalizer thread
3555         and the shutdown sequence will wait on it forever.
3556
3557 2009-01-08 Rodrigo Kumpera  <rkumpera@novell.com>
3558
3559         * threads.c (mono_thread_current): Make THREAD_DEBUG work on windows
3560         with MSVC.
3561
3562 2009-01-08  Miguel de Icaza  <miguel@novell.com>
3563
3564         * appdomain.c: Initialize the mono_strtod_mutex here, thanks to
3565         Robert Jordan for pointing this out.
3566
3567 2009-01-08  Christian Prochnow  <cproch@seculogix.de>
3568
3569         * icall.c
3570         * icall-def.h: added internal calls ves_icall_System_IO_DriveInfo_GetDiskFreeSpace,
3571         ves_icall_System_IO_DriveInfo_GetDriveType.
3572
3573 2009-01-07  Miguel de Icaza  <miguel@novell.com>
3574
3575         * icall.c: Wrap calls to mono_strtod in CriticalSection
3576         invocations when using eglib, to work around #464316.
3577
3578 2009-01-07 Rodrigo Kumpera  <rkumpera@novell.com>
3579
3580         * file-io.c (ves_icall_System_IO_MonoIO_GetCurrentDirectory): Double check the
3581         return value of GetCurrentDirectory to never access unitialized memory.
3582
3583 2009-01-07 Rodrigo Kumpera  <rkumpera@novell.com>
3584
3585         * file-io.c (ves_icall_System_IO_MonoIO_GetCurrentDirectory): Properly check the
3586         return value of GetCurrentDirectory and expand the buffer if needed.
3587
3588         Fixes #459094.
3589
3590 2009-10-07 Tom Hindle  <tom_hindle@sil.org>
3591
3592         * marshal.c (GetIUnknownForObjectInternal, GetIUnknownForObjectInternal) : 
3593           Adding a call to mono_init_com_types.
3594
3595         Code is contributed under MIT/X11 license.
3596
3597 2009-01-07  Geoff Norton  <gnorton@novell.com>
3598
3599         * socket-io.c: ioctlsocket(FIONREAD) returns the size of the UDP header as well on 
3600         darwin.  Use getsockopt SO_NREAD instead to get the right values for TCP and UDP.
3601         ai_canonname can be null in some cases on darwin, where the runtime assumes it will 
3602         be the value of the ip buffer.
3603
3604 2009-01-06 Rodrigo Kumpera  <rkumpera@novell.com>
3605
3606         * verify.c (mono_class_interface_implements_interface): Verify parents as we can't rely on
3607         interfaces_packed here.
3608
3609         Fixes part of #463294.
3610
3611 2009-01-06 Rodrigo Kumpera  <rkumpera@novell.com>
3612
3613         * verify.c (is_array_type_compatible): Ignore bounds and sizes when checking array compatibility.
3614
3615         Fixes part of #463294.
3616
3617 2009-01-06 Rodrigo Kumpera  <rkumpera@novell.com>
3618
3619         * verify.c (stack_slot_is_complex_type_not_reference_type): Check if the type
3620         is a boxed complex as well.
3621
3622         Fixes part of #463294.
3623
3624 2009-01-06 Rodrigo Kumpera  <rkumpera@novell.com>
3625
3626         * reflection.c (mono_image_get_methodref_token): Add an extra create_typespec parameter to
3627         control if a methodspec should be created for the generic method definition from external assemblies.
3628         Caching of methodspec is done using the handleref hash table.
3629
3630         Fixes #462592.
3631
3632 2009-01-05 Rodrigo Kumpera  <rkumpera@novell.com>
3633
3634         * loader.c (find_method): When searching the interfaces of a class
3635         check the transitive closure of implemented interfaces.
3636
3637         Fixes #463303.
3638
3639 2009-01-03 Rodrigo Kumpera  <rkumpera@novell.com>
3640
3641         * class.c (get_implicit_generic_array_interfaces): Improve debugging code.
3642         
3643 2009-01-03 Rodrigo Kumpera  <rkumpera@novell.com>
3644
3645         * class.c (get_implicit_generic_array_interfaces): Extract valuetype
3646         interfaces calculation to fill_valuetype_array_derived_types.
3647
3648         * class.c (get_implicit_generic_array_interfaces): Valuetypes need IList /
3649         ICollection / IEnumerator interfaces for their extra twin type - sbyte for byte
3650         for example.
3651
3652         * class.c (get_implicit_generic_array_interfaces): InternalEnumerator gets
3653         interfaces for valuetypes if needed.    
3654
3655         * class.c (fill_valuetype_array_derived_types): Enums should have interfaces
3656         for their basetype as well. Types are array expanded if rank is > 0.
3657
3658         Fixes #400716.
3659
3660 2008-12-30  Bill Holmes  <billholmes54@gmail.com>
3661
3662         * socket-io.h : Changing the signature of
3663           ves_icall_System_Net_Sockets_Socket_Accept_internal to pass
3664           the blocking state.
3665
3666         * icall-def.h :  Changing the signature of
3667           System.Net.Sockets.Socket.Accept_internal to pass the blocking state.
3668
3669         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Accept_internal) :
3670           For Windows only.  Avoid blocking when calling accept by
3671           querying for a connection via select.  The loop also queries
3672           the thread state every 1000 micro seconds for the thread
3673           stop state.  This will avoid the process hanging on shutdown
3674           when using a TcpChannel that is never connected to.
3675
3676         Code is contributed under MIT/X11 license.
3677
3678 2008-12-30  Marek Safar  <marek.safar@gmail.com>
3679
3680         * tabledefs.h: Add METHOD_ATTRIBUTE_CHECK_ACCESS_ON_OVERRIDE.
3681
3682 2008-12-26 Rodrigo Kumpera  <rkumpera@novell.com>
3683
3684         * class.c (get_implicit_generic_array_interfaces): Extract common
3685         code to a helper function making it a lot easier on the eyes.
3686
3687 2008-12-26 Rodrigo Kumpera  <rkumpera@novell.com>
3688
3689         * class.c (get_implicit_generic_array_interfaces): If the internal
3690         enumerator is an interface inflate System.Object instead of itself.
3691
3692         Fixes #461261.
3693
3694 2008-12-24 Rodrigo Kumpera  <rkumpera@novell.com>
3695
3696         * object.c (mono_runtime_invoke_array): Don't assert with
3697         byref nullable types.
3698
3699         * marshal.c (mono_marshal_get_runtime_invoke): To handle
3700         byref nullables we unbox the object and store it on the
3701         stack. 
3702         We can't use the boxed object since it is the T of Nullable<T>
3703         and the boxed representation of a nullable it's underlying type
3704         or null.
3705         We could cheat and create a boxed nullable and use the same
3706         machinery of other byref VTs but this feels like a hack and
3707         using the stack has the bonus of reducing heap pressure.
3708
3709         Fixes #461941.
3710
3711 2008-12-23 Rodrigo Kumpera  <rkumpera@novell.com>
3712
3713         * marshal.c (mono_marshal_emit_managed_wrapper): Handle char
3714         return value.
3715
3716         Fixes #461867.
3717
3718 2008-12-19  Bill Holmes  <billholmes54@gmail.com>
3719
3720         * icall-def.h : Adding an internal call definition for 
3721           System.Environment.internalBroadcastSettingChange.
3722
3723         * icall.c : Adding a Windows only implementation to broadcast a 
3724           WM_SETTINGCHANGE when an environment variable has changed.
3725
3726         Code is contributed under MIT/X11 license.
3727
3728 2008-12-19  Mark Probst  <mark.probst@gmail.com>
3729
3730         * class.c, class-internals.h: Made
3731         mono_class_has_parent_and_ignore_generics() non-static.
3732
3733 Thu Dec 18 16:35:22 CET 2008 Paolo Molaro <lupus@ximian.com>
3734
3735         * image.c: deal with the mmap failing when loading an image.
3736
3737 2008-12-17  Geoff Norton  <gnorton@novell.com>
3738
3739         * threadpool.c: Ensure that the io_queue_lock is initialized
3740         in all circumstances, as we always attempt to cleanup against it.
3741
3742 2008-12-17  Miguel de Icaza  <miguel@novell.com>
3743
3744         * icall.c (ves_icall_System_Environment_get_Platform): For
3745         compatibility reasons for existing client code we will keep
3746         returning 4 for a while.   
3747
3748         For how long will depend on the documentation being updated, and
3749         for us to give client code a chance to be updated.
3750
3751         This reverts the original decison on #433108 since we did not
3752         catch roughly 33 instances of the broken code in our own source
3753         code base, we did not catch failures on the buildbots, and QA did
3754         not bring this as a problem.
3755
3756         Only today I found some customer's code breaking due to our own
3757         class libraries not being fully updated and tracked it down to
3758         this change.  I am reverting it because if we could not even get
3759         our story straight in our own code base, how can we hope that our
3760         end user code be fixed?
3761
3762         As of this morning, our Wiki page that documents how to detect
3763         Unix had not been fixed.    
3764
3765 2008-12-16  Zoltan Varga  <vargaz@gmail.com>
3766
3767         * metadata.c (inflated_method_in_image): Add a workaround for #458168.
3768
3769         * class.c (mono_class_get_fields): Handle loading errors.
3770
3771 2008-12-12 Mark Mason <mmason@upwardaccess.com>
3772
3773         * metadata.c (mono_type_stack_size_internal): If SIZEOF_REGISTER > SIZEOF_VOID_P then use SIZEOF_REGISTER as the size and alignment of the stack slots.
3774         
3775 2008-12-12 Gonzalo Paniagua Javier <gonzalo@novell.com>
3776
3777         * mono-perfcounters.c: avoid warning.
3778
3779 2008-12-12 Rodrigo Kumpera  <rkumpera@novell.com>
3780
3781         * reflection.c (ensure_runtime_vtable): Work on generic instances and
3782         make sure all interfaces have MonoClass::interface_id set.
3783
3784         * reflection.c (ensure_generic_class_runtime_vtable): Ensure the
3785         method table is property set.
3786
3787 2008-12-12 Rodrigo Kumpera  <rkumpera@novell.com>
3788
3789         * class.c: New function mono_class_setup_interface_id that setup
3790         MonoClass::interface_id if needed.
3791
3792         * class-internals.h: Export new function.
3793
3794 2008-12-12 Rodrigo Kumpera  <rkumpera@novell.com>
3795
3796         * class.c: Add code to sanity check the vtable after setup_vtable_general
3797         has done it's work.
3798
3799 2008-12-11 Gonzalo Paniagua Javier <gonzalo@novell.com>
3800
3801         * icall.c: make Assembly.GetExecutingAssembly work properly when
3802         reflection is used to invoke the method.
3803         Bug #321781 fixed.
3804
3805 2008-12-11  Mark Probst  <mark.probst@gmail.com>
3806
3807         * metadata/generic-sharing.c: Look for constraints in all type
3808         arguments, not just the first one.
3809
3810 2008-12-10 Gonzalo Paniagua Javier <gonzalo@novell.com>
3811
3812         * appdomain.c: return the correct CodeBase for an Assembly instance
3813         that was loaded from the shadow-copy directories.
3814         Bug #458190 fixed.
3815
3816 2008-12-10  Zoltan Varga  <vargaz@gmail.com>
3817
3818         * sgen-gc.c (build_nursery_fragments): Clear nursery_next/nursery_frag_real_end.
3819
3820         * sgen-gc.c (check_object): New debugging helper function.
3821
3822         * object.c: Fix calls to mono_value_copy_array ().
3823
3824 2008-12-10 Rodrigo Kumpera  <rkumpera@novell.com>
3825
3826         * class.c (mono_class_setup_fields): If working on an inflated class
3827         first check if the generic definition did init with success.
3828
3829         Fixes #445361.
3830
3831 2008-12-10 Rodrigo Kumpera  <rkumpera@novell.com>
3832
3833         pedump.c (main): Fix a warning.
3834
3835 2008-12-10  Bill Holmes  <billholmes54@gmail.com>
3836
3837         * object-internals.h : Adding a definition for 
3838           MonoReflectionComVisibleAttribute.
3839
3840         * marshal.c (cominterop_com_visible) :  Method added to check the 
3841           ComVisible attribute of a class.
3842
3843         * marshal.c (cominterop_raise_hr_exception, cominterop_get_interface) :  
3844           cominterop_raise_hr_exception added to consolidate common code 
3845           to raise hr exceptions.
3846
3847         * marshal.c (cominterop_can_support_dispatch) :  Method added to determine 
3848           if a managed class should support IDispatch.
3849
3850         * marshal.c 
3851           (cominterop_get_idispatch_for_objec, cominterop_ccw_queryinterfacet) :  
3852           Added additional checks for managed object when getting 
3853           an IDispatch interface.
3854
3855         Code is contributed under MIT/X11 license.
3856
3857 2008-12-10 Rodrigo Kumpera  <rkumpera@novell.com>
3858
3859         pedump.c (main): Handle mono_get_method () returning NULL. 
3860
3861 2008-12-09  Zoltan Varga  <vargaz@gmail.com>
3862
3863         * marshal.h: Fix a warning.
3864
3865 2008-12-09  Bill Holmes  <billholmes54@gmail.com>
3866
3867         * marshal.c : Adding cominterop_release_all_rcws to release all
3868           runtime callable wrappers held by the runtime.
3869
3870         * marshal.h : Adding declaration for cominterop_release_all_rcws.
3871           
3872         Code is contributed under MIT/X11 license.
3873
3874 2008-12-09  Zoltan Varga  <vargaz@gmail.com>
3875
3876         * metadata.c (mono_image_alloc_lock): New helper function.
3877         (mono_image_alloc0_lock): Ditto.
3878
3879         * metadata.c: Use the alloc_lock () helper functions for allocating
3880         memory from the image mempool.
3881
3882 2008-12-08 Rodrigo Kumpera  <rkumpera@novell.com>
3883
3884         * class.c (mono_class_from_generic_parameter): Document it's
3885         locking behavior. Fix double checked locking here, we stored in
3886         param->pklass a partially initialized MonoClass and no membar was used.
3887
3888 2008-12-05  Marek Habersack  <mhabersack@novell.com>
3889
3890         * sysmath.c (ves_icall_System_Math_Round2): if round (3) and rint
3891         (3) functions are present in the C library use them to do the
3892         job. If they are absent, make sure that the sum of int_part and
3893         dec_part is rounded before returning. This is necessary due to the
3894         division of dec_part by the power of 10 before the final addition
3895         is performed - if the result is not rounded in some cases it will
3896         yield invalid results.
3897
3898 2008-12-04  Zoltan Varga  <vargaz@gmail.com>
3899
3900         * marshal.c (mono_marshal_emit_native_wrapper): Add AOT support for pinvoke
3901         wrappers by emitting the function address using a CEE_MONO_ICALL_ADDR 
3902         instruction instead of a pointer constant.
3903
3904 2008-12-03  Zoltan Varga  <vargaz@gmail.com>
3905
3906         * loader.c (mono_method_get_header): Do most of the work outside the
3907         loader lock, to avoid assembly load hook deadlocks.
3908
3909         * metadata.c (mono_metadata_parse_mh_full): Use finer-grained locking.
3910         (mono_metadata_parse_type_full): Ditto.
3911
3912 2008-12-02 Rodrigo Kumpera  <rkumpera@novell.com>
3913
3914         * mempool.c (mono_backtrace): Take the number of allocated bytes as argument.
3915         Make the stack depth fixed. Ensure proper argument passing to the backtrace
3916         funtions. Finally, use a lock to produce well ordered output.
3917
3918         The lock looks silly, as all calls to the corlib mempool should be guarded
3919         with the loader lock, but for some reason this fact doesn't help. 
3920
3921         * mempool.c (mono_mempool_alloc0): Add support for TRACE_ALLOCATIONS.
3922
3923 2008-12-02  Mark Probst  <mark.probst@gmail.com>
3924
3925         * socket-io.c: 64 bit big-endian fixes.
3926
3927 2008-12-01 Rodrigo Kumpera  <rkumpera@novell.com>
3928
3929         * verify.c (is_compatible_boxed_valuetype): Rewrite function to work properly with
3930         targets that require strict compatibility between the types.
3931
3932         * verify.c (verify_stack_type_compatibility_full): Boxed values are not compatible
3933         to unboxed types. All cases that this is true are checked by is_compatible_boxed_valuetype.
3934         Kill the strict argument and create a new one valuetype_must_be_boxed.
3935
3936         * verify.c (verify_delegate_compatibility): Use verify_stack_type_compatibility_full to
3937         state that all valuetypes must be boxed.
3938
3939         Fixes #448560.
3940
3941 2008-11-29  Kornél Pál  <kornelpal@gmail.com>
3942
3943         * coree.c (MonoFixupExe): Use sizeof(IMAGE_BASE_RELOCATION) instead of
3944         IMAGE_SIZEOF_BASE_RELOCATION as newer Vista SDKs no longer define the latter.
3945
3946         Contributed under MIT/X11 license.
3947
3948 2008-11-28 Rodrigo Kumpera  <rkumpera@novell.com>
3949
3950         * class.c (mono_class_setup_fields): Don't copy MonoType::attrs as
3951         the inflate_generic_type machinery should handle it.
3952
3953         This avoids a crash when the field's flags is zero and it's type is
3954         a primitive.
3955         What happens is that mono_metadata_parse_type_full will see that opt_attrs
3956         is zero and will return one of the cached built-in primitive types. Since
3957         those types live in read-only memory, the code that copies it crashes.  
3958
3959 2008-11-28  Mark Probst  <mark.probst@gmail.com>
3960
3961         * object.c: Don't put function descriptors into generalized IMT
3962         thunks.
3963
3964 2008-11-28  Mark Probst  <mark.probst@gmail.com>
3965
3966         * class.c: Enable generic code sharing on PPC64.
3967
3968 2008-11-27  Mark Probst  <mark.probst@gmail.com>
3969
3970         * mempool.c, mempool-internals.h: Added g_slist_append_mempool()
3971         from mini/mini.c.
3972
3973         * generic-sharing.c: Allocate the method template slists from the
3974         image mempool so it doesn't leak.
3975
3976 2008-11-27 Rodrigo Kumpera  <rkumpera@novell.com>
3977
3978         * class.c (generic_array_methods): Release the linked list.
3979
3980 2008-11-27  Mark Probst  <mark.probst@gmail.com>
3981
3982         * marshal.c (mono_string_builder_to_utf8): Fixed a wrong
3983         invocation to g_utf16_to_utf8().
3984
3985 2008-11-26  Mark Probst  <mark.probst@gmail.com>
3986
3987         * icall.c (mono_ArgIterator_IntGetNextArg): Handle sub-word sized
3988         arguments on big endian archs.
3989
3990 2008-11-25 Gonzalo Paniagua Javier <gonzalo@novell.com>
3991
3992         * reflection.c: (_mono_reflection_parse_type) skip leading spaces in
3993         the type name (test added in corlib).
3994
3995 2008-11-25 Gonzalo Paniagua Javier <gonzalo@novell.com>
3996
3997         * pedump.c: initialize perf. counters. Fixes a segv.
3998
3999 2008-11-25  Martin Baulig  <martin@ximian.com>
4000
4001         * mono-debug-debugger.c
4002         (mono_debugger_runtime_invoke): Return the exception object if an
4003         exception was thrown.  Visual Studio displays the exception object
4004         in the locals window.
4005
4006 2008-11-24  Mark Probst  <mark.probst@gmail.com>
4007
4008         * mini-trampolines.c (mono_delegate_trampoline): Don't return a
4009         ftnptr.
4010
4011 2008-11-24  Mark Probst  <mark.probst@gmail.com>
4012
4013         * marshal.c (mono_type_native_stack_size): MONO_TYPE_I and
4014         MONO_TYPE_U are sizeof (gpointer), too.
4015
4016 2008-11-24  Mark Probst  <mark.probst@gmail.com>
4017
4018         * marshal.c (mono_type_native_stack_size): Fixed size and
4019         alignment for reference types.
4020
4021 2008-11-23  Mark Probst  <mark.probst@gmail.com>
4022
4023         * class.c (mono_class_generic_sharing_enabled): Disable generic
4024         code sharing for PPC64.
4025
4026 2008-11-21 Rodrigo Kumpera  <rkumpera@novell.com>
4027
4028         * icall.c (mono_method_get_equivalent_method): Make sure
4029         method->klass->methods is inited before looping over it.
4030
4031 2008-11-20 Gonzalo Paniagua Javier <gonzalo@novell.com>
4032
4033         * object.c: when calling ExecuteAssembly in a newly created domain,
4034         the configuration file and application base are already set up.
4035         Bug #446353 take 2 fixed.
4036
4037 2008-11-20  Zoltan Varga  <vargaz@gmail.com>
4038
4039         * marshal.c: Add support for MONO_TYPE_GENERICINST to some functions.
4040         Fixes #444715. Fix a warning.
4041
4042 2008-11-18 Gonzalo Paniagua Javier <gonzalo@novell.com>
4043
4044         * appdomain.c: write the full path of the assembly to the .ini file
4045         created when "shadow-copying"
4046         Bug #446353 fixed.
4047
4048 2008-11-18  Zoltan Varga  <vargaz@gmail.com>
4049
4050         * debug-helpers.c (mono_method_full_name): Stringify wrapper types even
4051         if signature==FALSE.
4052
4053 2008-11-17  Bill Holmes  <billholmes54@gmail.com>
4054
4055         * marshal.h : Fix the cygwin build.
4056            marshal.c:12442: undefined reference to `_IID_IMarshal'
4057           
4058         Code is contributed under MIT/X11 license.
4059
4060 2008-11-17  Bill Holmes  <billholmes54@gmail.com>
4061
4062         * marshal.h : cominterop_ccw_getfreethreadedmarshaler added to return the
4063           free threaded marshaler when QueryInterface is called on a COM callable
4064           wrapper requesting the IMarshal interface.
4065           
4066         Code is contributed under MIT/X11 license.
4067
4068 2008-11-14  Zoltan Varga  <vargaz@gmail.com>
4069
4070         * domain-internals.h (MonoDomain): Update MONO_DOMAIN_LAST_GC_TRACKED.
4071
4072         * reflection.c (mono_type_get_object): Special case the very common
4073         void type.
4074
4075         * domain-internals.h (struct _MonoDomain): Add 'typeof_void' field to
4076         hold typeof(void).
4077
4078 2008-11-13  Bill Holmes  <billholmes54@gmail.com>
4079
4080         * process.h : Adding method declaration for
4081           ves_icall_System_Diagnostics_Process_WaitForInputIdle_internal.
4082           
4083         * process.c : Adding implementation for
4084           ves_icall_System_Diagnostics_Process_WaitForInputIdle_internal.
4085           
4086         * icall-def.h : Registering ICALL Processs.WaitForInputIdle_internal
4087           to ves_icall_System_Diagnostics_Process_WaitForInputIdle_internal.
4088
4089         Code is contributed under MIT/X11 license.
4090
4091 2008-11-10  Rodrigo Kumpera  <rkumpera@novell.com>
4092
4093         * appdomain.c (unload_thread_main): Clean up threadpool by
4094         calling mono_thread_pool_remove_domain_jobs.
4095
4096         * domain-internals.h (struct _MonoDomain): Add new fields to
4097         help coordinate the cleanup of the threadpool.
4098
4099         * threadpool.c (mono_thread_pool_remove_domain_jobs): New fuction
4100         that cleans up the threadpool of all jobs associated with an appdomain.
4101         It does that by cleaning up the queues and making sure all active
4102         threads are accounted.
4103
4104         * threadpool.c (async_invoke_io_thread): Ignore job if its domain is
4105         unloaded or in the process of. Take this is such way that there is
4106         no race condition between another thread starting the unload and the
4107         current thread acknowledging it.
4108
4109         * threadpool.c (async_invoke_thread): Same.
4110
4111         * threadpool.c (start_io_thread_or_queue): Increment threadpool_jobs before
4112         firing the new thread.
4113
4114         * threadpool.c (start_tpthread): Same.
4115
4116         * theadpool.c (append_job): Increment threadpool_jobs before queueing.
4117
4118         * threadpool.h: Add mono_thread_pool_remove_domain_jobs.
4119
4120 2008-11-06  Jonathan Chambers  <joncham@gmail.com>
4121
4122         * file-io.c (ves_icall_System_IO_MonoIO_DuplicateHandle): 
4123         Add support for DuplicateHandle.
4124         
4125         * file-io.h (ves_icall_System_IO_MonoIO_DuplicateHandle): 
4126         Add support for DuplicateHandle.
4127         
4128         * icall-def.h (ves_icall_System_IO_MonoIO_DuplicateHandle): 
4129         Add support for DuplicateHandle.
4130
4131         Code is contributed under MIT/X11 license.
4132
4133 2008-11-06  Mark Probst  <mark.probst@gmail.com>
4134
4135         * class-internals.h: Make min_align into a whole byte.
4136
4137         * class.c: Set min_align for SIMD types to 16.
4138
4139 2008-11-05  Geoff Norton  <gnorton@novell.com>
4140
4141         * attach.c: Default the attacher to enabled for all cases including
4142         embedded.
4143
4144 Wed Nov 5 16:33:41 CET 2008 Paolo Molaro <lupus@ximian.com>
4145
4146         * monitor.c, class-internals.h, wrapper-types.h: revert incorrect
4147         change r117650.
4148
4149 2008-11-04  Mark Probst  <mark.probst@gmail.com>
4150
4151         * monitor.c, monitor.h: New function for querying offsets of
4152         members of MonoThreadsSync.
4153
4154 2008-11-04  Zoltan Varga  <vargaz@gmail.com>
4155
4156         * marshal.c (mono_marshal_get_runtime_invoke): Use runtime_invoke_direct_cache
4157         to speed up this function and to avoid the boundless memory growth caused by
4158         the signature_dup () calls.
4159
4160 2008-11-02  Zoltan Varga  <vargaz@gmail.com>
4161
4162         * monitor.c (mono_monitor_get_fast_enter_method): Add a proper type for the
4163         wrapper.
4164
4165         * class-internals.h (struct _MonoMethod): Increase the size of 'wrapper_type'
4166         by 1 bit.
4167
4168         * wrapper-types.h: Add MONO_WRAPPER_MONITOR_FAST_ENTER/EXIT.
4169
4170 2008-10-31 Gonzalo Paniagua Javier <gonzalo@novell.com>
4171
4172         * appdomain.c:
4173         * domain-internals.h: made mono_set_private_bin_path_from_config()
4174         "internal".
4175         * object.c: call the above function after setting the configuration
4176         file path for the root domain.
4177         Fixes bug #314478.
4178
4179 2008-10-31 Gonzalo Paniagua Javier <gonzalo@novell.com>
4180
4181         * assembly.c: when the assembly is loaded from an absolute path, end
4182         basedir with a directory separator.
4183         Bug #440781 fixed.
4184
4185 2008-10-30  Mark Probst  <mark.probst@gmail.com>
4186
4187         * monitor.c (mono_monitor_get_fast_enter_method): If
4188         CompareExchange is not available, don't create the fastpath
4189         instead of asserting.  (The method is missing in the 1.1 profile.)
4190
4191 2008-10-30  Mark Probst  <mark.probst@gmail.com>
4192
4193         * marshal.c, marshal.h: Rename signature_no_pinvoke() and make it non-static.
4194
4195         * monitor.c, monitor.h: Code for generating Monitor.Enter and
4196         Monitor.Exit IL fastpaths.
4197
4198 2008-10-28  Rodrigo Kumpera  <rkumpera@novell.com>
4199
4200         * class.c (mono_class_create_from_typedef): Added Vector2ul.
4201
4202 2008-10-28  Rodrigo Kumpera  <rkumpera@novell.com>
4203
4204         * class.c (mono_class_create_from_typedef): Added Vector2l.
4205
4206 2008-10-27  Rodrigo Kumpera  <rkumpera@novell.com>
4207
4208         * class.c (mono_class_create_from_typedef): Added Vector2d.
4209
4210 2008-10-27 Gonzalo Paniagua Javier <gonzalo@novell.com>
4211
4212         * appdomain.c: translate \ into / for cache_path.
4213         * domain-internals.h: new mono_is_shadow_copy_enabled().
4214         * icall.c: (fill_reflection_assembly_name) do the same path
4215         manipulations that get_code_base does.
4216         (get_code_base) use mono_is_shadow_copy_enabled.
4217
4218 2008-10-26 Gonzalo Paniagua Javier <gonzalo@novell.com>
4219
4220         * appdomain.c: shadow-copied assemblies go to CachePath +
4221         ApplicationName when both are set. DynamicBase has nothing to do with
4222         shadow copies.
4223         Bug #406877 fixed.
4224
4225 2008-10-26  Zoltan Varga  <vargaz@gmail.com>
4226
4227         * reflection.c (encode_locals): Use a cache to avoid duplicate entries in the
4228         STANDALONESIG table.
4229
4230         * metadata-internals.h (struct _MonoDynamicImage): Add cache for
4231         standalone signatures.
4232
4233         * marshal.c (mono_marshal_get_runtime_invoke): Rewrite the signature 
4234         comparison code: instead of comparing the signatures using a custom
4235         equals function, transform them to a common signature and compare that. This
4236         works better with AOT.
4237
4238 2008-10-25  Zoltan Varga  <vargaz@gmail.com>
4239
4240         * Reapply r116521 with (!mono_debug_using_mono_debugger ()) checks.
4241
4242         * class.c (mono_class_init): Remove unneccesary mono_class_setup_properties ()
4243         call for generic instances.
4244         (mono_class_setup_properties): Call setup_properties () before accessing
4245         gklass->properties.
4246
4247         * class.c (mono_class_get_virtual_methods): New helper function to iterate
4248         over the virtual methods of a class using metadata if possible, avoiding the
4249         creation of MonoMethod's for non-virtual methods.
4250         
4251         * class.c (mono_class_setup_vtable_general): Rewrite this to use 
4252         get_virtual_methods () to iterate over the virtual methods of classes.
4253
4254 2008-10-25  Martin Baulig  <martin@ximian.com>
4255
4256         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_DEAD): New #define.
4257
4258 2008-10-24  Rodrigo Kumpera  <rkumpera@novell.com>
4259
4260         * class.c (mono_class_create_from_typedef): Added Vector4i.
4261
4262 2008-10-24  Mark Probst  <mark.probst@gmail.com>
4263
4264         * marshal.c (mono_marshal_get_synchronized_wrapper): Emit
4265         ldtoken+GetTypeFromHandle instead of i4+icall so that the JIT
4266         special-casing applies to eliminate the call completely.
4267
4268 2008-10-24  Rodrigo Kumpera  <rkumpera@novell.com>
4269
4270         * class.c (mono_class_create_from_typedef): Added Vector8s.
4271
4272 2008-10-23  Rodrigo Kumpera  <rkumpera@novell.com>
4273
4274         * class.c (mono_class_create_from_typedef): Added Vector16sb.
4275
4276 2008-10-23 Gonzalo Paniagua Javier <gonzalo@novell.com>
4277
4278         * icall.c: get rid of annoying warning.
4279
4280 2008-10-23 Gonzalo Paniagua Javier <gonzalo@novell.com>
4281
4282         * threadpool.c: in 1.x, if you change the background status of the
4283         threadpool thread, it's not reset.
4284         Remove unnecessary calls to SetState.
4285
4286 2008-10-22 Gonzalo Paniagua Javier <gonzalo@novell.com>
4287
4288         * threadpool.c: asynchronously create a set of idle threads upon first
4289         use of the threadpool. SetMinThreads will now start the appropriate
4290         number of idle threads if they are not already running. The default is
4291         1 threadpool thread per CPU. Increased the maximum number of threads
4292         per CPU to 10.
4293
4294 2008-10-22  Martin Baulig  <martin@ximian.com>
4295
4296         Revert r116521 from Zoltan, it breaks the debugger:
4297
4298         * class.c (mono_class_get_virtual_methods): New helper function to iterate
4299         over the virtual methods of a class using metadata if possible, avoiding the
4300         creation of MonoMethod's for non-virtual methods.
4301         
4302         * class.c (mono_class_setup_vtable_general): Rewrite this to use 
4303         get_virtual_methods () to iterate over the virtual methods of classes.
4304
4305 2008-10-22 Gonzalo Paniagua Javier <gonzalo@novell.com>
4306
4307         * threads.c: when creating a threadpool thread, set its state to
4308         'background'.
4309         * threadpool.c: reset the background state of a threadpool thread
4310         after finishing each work item
4311         Bug #437888 fixed.
4312
4313 2008-10-22  Zoltan Varga  <vargaz@gmail.com>
4314
4315         * class.c (mono_class_get_vtable_entry): Add an optimization for szarrays.
4316         
4317         * class.c (mono_class_setup_vtable_general): Add an optimized version for
4318         generic instances which works by inflating the methods in the container
4319         class's vtable.
4320
4321         * class.c (mono_class_inflate_generic_type_with_mempool_no_copy): New
4322         variant which doesn't make a copy if no inflation was done.
4323         (mono_class_setup_fields): Use it.
4324
4325         * metadata.c (mono_metadata_get_shared_type): New helper function to
4326         return a shared instance of a given MonoType.
4327
4328         * class.c (mono_class_inflate_generic_type_with_mempool): Avoid making
4329         a copy of most non-generic types.
4330
4331 Wed Oct 22 18:00:46 CEST 2008 Paolo Molaro <lupus@ximian.com>
4332
4333         * threadpool.c: remove one more GetSystemInfo () call.
4334
4335 Wed Oct 22 17:45:48 CEST 2008 Paolo Molaro <lupus@ximian.com>
4336
4337         * mono-perfcounters.c, icall-def.h, environment.c, environment.h:
4338         use the code in mono-proclib.h to get processor information.
4339
4340 2008-10-22 Gonzalo Paniagua Javier <gonzalo@novell.com>
4341
4342         * appdomain.c: fixed the logic that determines whether assemblies in a
4343         directory are "shadow-copied" or not. Bug #433483 fixed.
4344
4345 2008-10-22  Zoltan Varga  <vargaz@gmail.com>
4346
4347         * process.c (ves_icall_System_Diagnostics_Process_GetProcessData): Fix a
4348         warning.
4349
4350 2008-10-21  Zoltan Varga  <vargaz@gmail.com>
4351
4352         * marshal.c (runtime_invoke_signature_equal): Don't shared wrappers
4353         returning a vtype.
4354
4355         * class.c debug-helpers.c object.c class-internals.h marshal.c icall.c
4356         reflection.c: Use mono_field_get_name () for accessing a field's name.
4357
4358         * class-internals.h (MONO_CLASS_HAS_STATIC_METADATA): Move this here from
4359         class.c
4360
4361         * class.c (mono_field_get_rva): Fix crash if this is called on a dynamic
4362         field.
4363
4364         * loader.c (find_method_in_class): Reenable the metadata optimization by
4365         not using it for generic instances.
4366
4367         * class-internals.h (MonoFieldDefaultValue): Extract the rarely used 
4368         data/def_type fields from MonoClassField into a separate structure.
4369         (struct MonoClassField): Remove data/def_type fields.
4370         (struct _MonoClass): Add a 'field_def_values' array to store the default
4371         values/RVA for fields.
4372
4373         * class.c reflection.c: Update after the changes.
4374         
4375         * object.c (mono_class_create_runtime_vtable): Use mono_field_get_data ()
4376         for accessing field->data.
4377
4378         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_InitializeArray): Ditto.
4379
4380         * loader.c (find_method_in_class): Revert the last change for now as
4381         it breaks Mono.C5 unit tests.
4382
4383         * class-internals.h (struct _MonoDynamicGenericClass): Add fields
4384         'field_generic_types' and 'field_objects' which contain the information
4385         previously stored in MonoInflatedField.
4386         (MonoInflatedField): Delete.
4387         (struct _MonoClassField): Delete 'generic_info' field.
4388
4389         * reflection.c: Store the information which was previously in 
4390         field->generic_info in MonoDynamicGenericClass instead.
4391
4392         * metadata.c (free_generic_class): Update after MonoDynamicGenericClass/
4393         MonoClassField changes.
4394
4395 Tue Oct 21 17:07:55 CEST 2008 Paolo Molaro <lupus@ximian.com>
4396
4397         * marshal.c, method-builder.c: get rid of wrapper_hash and instead
4398         store the value inside the data array of the MonoMethodWrapper.
4399         This saves memory, is faster and fixes the lifetime issues (methods
4400         were never removed from the hash previously). May also fix bug#436996.
4401
4402 2008-10-21  Zoltan Varga  <vargaz@gmail.com>
4403
4404         * reflection.c (mono_image_get_fieldref_token): For fields of non-dynamic 
4405         generic instances, compute the type from the generic definition instead of
4406         looking in field->generic_info.
4407
4408         * class.c (mono_class_setup_fields): Don't create a MonoInflatedField
4409         for inflated fields, the only user was get_fieldref_token () which no
4410         longer needs it.
4411
4412         * class.c (mono_class_init): Revert the last change as it seems to cause
4413         crashes.
4414
4415         * class-internals.h (struct _MonoClassField): Reorder fields to save 4
4416         bytes on 64 bit platforms.
4417
4418         * object.c (mono_class_create_runtime_vtable): Fix a warning.
4419         
4420         * object.c (mono_class_create_runtime_vtable): Don't initalize
4421         field->data/field->def_type here, it is done lazily by 
4422         mono_class_get_field_default_value ().
4423
4424         * icall.c (ves_icall_get_enum_info): Call 
4425         mono_class_get_field_default_value () instead of directly accessing
4426         field->data and field->def_type.
4427
4428         * object.c (get_default_field_value): Ditto.
4429
4430         * class.c (mono_field_get_data): Ditto.
4431         
4432         * class.c (mono_class_init): Remove unneccesary mono_class_setup_methods ()
4433         call for generic instances.
4434
4435         * loader.c (find_method_in_class): If klass != from_class, then inflate
4436         the method with the context of from_class, since the caller assumes this.
4437
4438 2008-10-20  Zoltan Varga  <vargaz@gmail.com>
4439
4440         * class.c (mono_method_get_vtable_index): Use mono_method_get_vtable_slot ()
4441         for accessing method->slot.
4442
4443 2008-10-20  Cedric Vivier  <cedricv@neonux.com>
4444
4445         * icall-def.h, icall.c: Add icall for Debugger.IsAttached.
4446
4447 2008-10-19  Zoltan Varga  <vargaz@gmail.com>
4448
4449         * class.c (mono_method_get_vtable_index): Use
4450         mono_method_get_vtable_slot () for accessing method->slot.
4451
4452         * object.c (build_imt_slots): Use mono_class_get_method_by_index () for
4453         accessing klass->methods.
4454
4455         * class.c (mono_method_get_vtable_slot): New helper function.
4456         (mono_class_get_vtable_entry): Ditto.
4457         (mono_class_setup_vtable_general): Use mono_method_get_vtable_slot () for
4458         accessing method->slot.
4459
4460         * generic-sharing.c (mono_class_get_method_generic): Pass the declaring
4461         method to get_inflated_method ().
4462
4463         * class.c (mono_class_get_inflated_method): New helper method to obtain
4464         a method of an inflated class without calling setup_methods ().
4465         (mono_class_get_cctor): Use get_inflated_method.
4466
4467         * generic-sharing.c (mono_class_get_method_generic): Ditto.
4468         
4469         * marshal.c image.c: Lazily create all the marshal caches.
4470
4471         * image.c (mono_image_init): Move initialization of runtime_invoke
4472         caches to marshal.c.
4473
4474         * marshal.c (get_cache): New helper function to lazily initialize a 
4475         wrapper cache.
4476         (mono_marshal_get_runtime_invoke): Share more runtime invoke wrappers.
4477
4478         * debug-helpers.c (mono_method_full_name): Include generic arguments.
4479
4480 Fri Oct 17 10:51:32 CEST 2008 Paolo Molaro <lupus@ximian.com>
4481
4482         * loader.c: fixed check for interface type.
4483
4484 Thu Oct 16 20:59:11 CEST 2008 Paolo Molaro <lupus@ximian.com>
4485
4486         * appdomain.c: check for NULL setup before it's referenced.
4487
4488 p
4489 Thu Oct 16 16:12:23 CEST 2008 Paolo Molaro <lupus@ximian.com>
4490
4491         * class.c: remove the unused old vtable setup code.
4492
4493 Thu Oct 16 12:53:29 CEST 2008 Paolo Molaro <lupus@ximian.com>
4494
4495         * class.c: don't depend on interface order in
4496         setup_interface_offsets (bug #435777).
4497         * reflection.c: sort the InterfaceImpl table (patch from
4498         Jb Evain  <jbevain@novell.com>).
4499
4500 2008-10-13  Zoltan Varga  <vargaz@gmail.com>
4501
4502         * assembly.c (mono_assembly_open_full): Avoid loading images while holding
4503         the low level assemblies lock.
4504
4505 Mon Oct 13 16:35:26 CEST 2008 Paolo Molaro <lupus@ximian.com>
4506
4507         * domain-internals.h, domain.c, icall.c, image.c, marshal.c,
4508         object.c, reflection.c, socket-io.c, threads.c: introduced
4509         mono_framework_version () to return the major framewrok version,
4510         changed the code that was using more complex patterns to use it.
4511         Return the correct value for PlatformID for OSX.
4512
4513 Mon Oct 13 14:38:01 CEST 2008 Paolo Molaro <lupus@ximian.com>
4514
4515         * icall-def.h, process.h, process.c: added an icall to get info about
4516         processes using mono-proclib.
4517
4518 Mon Oct 13 11:14:44 CEST 2008 Paolo Molaro <lupus@ximian.com>
4519
4520         * mono-perfcounters.c: use the mono-proclib functions to
4521         access process information.
4522
4523 Mon Oct 13 11:00:49 CEST 2008 Paolo Molaro <lupus@ximian.com>
4524
4525         * domain.c, assembly.c, debug-mono-symfile.c, debug-mono-symfile.h,
4526         monosn.c, Makefile.am, pedump.c, image.c, metadata-internals.h,
4527         reflection.c: remove rawbuffer usage: mmap support is more sanely
4528         provided by utils/mono-mmap.
4529
4530 Sat Oct 11 19:46:19 CEST 2008 Paolo Molaro <lupus@ximian.com>
4531
4532         * gc.c: use posix semaphores when possible so that
4533         mono_gc_finalize_notify() is signal safe.
4534
4535 2008-10-11  Zoltan Varga  <vargaz@gmail.com>
4536
4537         * reflection.c: Implement DISABLE_REFLECTION_EMIT, remove some
4538         #ifdef DISABLE_REFLECTION_SAVE stuff, only the exported functions need to
4539         be #ifdef-ed out, the linker will remove the rest.
4540
4541         * marshal.c: Implement DISABLE_COM.
4542
4543         * reflection.c: Implement DISABLE_REFLECTION_EMIT_SAVE.
4544
4545 2008-10-11  Miguel de Icaza  <miguel@novell.com>
4546
4547         * locales.c (string_invariant_compare_char): Optimization: do not
4548         call g_unichar_type unless we actually need the information.
4549
4550 2008-10-10  Mark Probst  <mark.probst@gmail.com>
4551
4552         * object.c, class-internals.h: Also create remoting trampolines
4553         for generic methods.  Pass the domain to the remoting trampoline
4554         creation function, too.
4555
4556 2008-10-10  Zoltan Varga  <vargaz@gmail.com>
4557
4558         * class.c (mono_class_init): Fix+re-enable the finalize optimization.
4559
4560 2008-10-10  Rodrigo Kumpera  <rkumpera@novell.com>
4561
4562         * class.c (mono_class_create_from_typedef): Vector4u was renamed to
4563         Vector4ui.
4564
4565 2008-10-10 Gonzalo Paniagua Javier <gonzalo@novell.com>
4566
4567         * assembly.c:
4568         * locales.c: remove the use of g_strdown. Fixes bug #322313.
4569
4570 Fri Oct 10 17:01:42 CEST 2008 Paolo Molaro <lupus@ximian.com>
4571
4572         * assembly.c: in mono_assembly_load_friends() take the assemblies lock
4573         for the least possible amount of time (extending the fix in r113458).
4574
4575 2008-10-10  Rodrigo Kumpera  <rkumpera@novell.com>
4576
4577         * class.c (mono_class_create_from_typedef): Retrofit to new type names.
4578
4579 2008-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
4580
4581         * class.c (mono_class_create_from_typedef): Added Vector8u and Vector16u
4582         as possible simd intrinsic types.
4583         Optimized the test to check for the common prefix first.
4584
4585 Thu Oct 9 17:38:24 CEST 2008 Paolo Molaro <lupus@ximian.com>
4586
4587         * class.c: back out part of a broken optimization committed on
4588         May 23th (bug #433908).
4589
4590 2008-10-09  Mark Probst  <mark.probst@gmail.com>
4591
4592         * profiler.c (simple_shutdown): Don't call mono_thread_attach() on
4593         Win32.  Should fix #432388 for most cases until we have the new
4594         profiler on Win32.
4595
4596 2008-10-08  Zoltan Varga  <vargaz@gmail.com>
4597
4598         * metadata.c (mono_metadata_generic_context_hash): Call generic_inst_hash
4599         instead of using inst->id so the hash is stable for AOT.
4600
4601 2008-10-07 Gonzalo Paniagua Javier <gonzalo@novell.com>
4602
4603         * appdomain.c:
4604         * icall.c: create a .ini file for shadow-copied assemblies that
4605         contains the location of the original assembly. Use this to return the
4606         proper CodeBase for shadow-copied assemblies. Fixes bug #323606.
4607         Also fix the number of '/' for windows when returning the CodeBase.
4608         Fixes bug #430920.
4609
4610 2008-10-07  Bill Holmes  <billholmes54@gmail.com>
4611
4612         * marshal.c (cominterop_get_ccw) : Fixing a copy paste error from r115126.
4613
4614         Code is contributed under MIT/X11 license.
4615
4616 2008-10-07  Bill Holmes  <billholmes54@gmail.com>
4617
4618         * marshal.c (cominterop_get_native_wrapper) : Adding a call to mono_class_setup_vtable
4619           if if the class vtable needs initialized.
4620
4621         Code is contributed under MIT/X11 license.
4622
4623 2008-10-07  Bill Holmes  <billholmes54@gmail.com>
4624
4625         * marshal.c (cominterop_get_native_wrapper_adjusted, cominterop_get_ccw) : 
4626           Adding default MonoMarshalSpecs for COM methods.  OBJECT->STRUCT,
4627           STRING->BSTR, and CLASS->INTERFACE.
4628
4629         Code is contributed under MIT/X11 license.
4630
4631 2008-10-07  Marek Habersack  <mhabersack@novell.com>
4632
4633         * sysmath.h: changed the declaration of the
4634         ves_icall_System_Math_Round2 icall by adding an extra
4635         away_from_zero parameter.
4636
4637         * sysmath.c (ves_icall_System_Math_Round2): added support for
4638         away from zero rounding. The icall now takes an extra boolean
4639         parameter to signal that away from zero operation is requested.
4640
4641 2008-10-06  Zoltan Varga  <vargaz@gmail.com>
4642
4643         * marshal.c (mono_marshal_get_delegate_begin_invoke): Put the wrapper in
4644         the delegate klass so it can work with full-aot.
4645         (mono_marshal_get_delegate_end_invoke): Ditto.
4646         (mono_marshal_get_delegate_invoke): Ditto.
4647
4648 Mon Oct 6 16:10:02 CEST 2008 Paolo Molaro <lupus@ximian.com>
4649
4650         * gc.c, attach.h, attach.c: remove a bad pattern:
4651         add_finalizer_callback () is not implemented correctly, it can't
4652         without adding more overhead to the finalizer loop and it's not
4653         even needed, since we know exactly what we need to call, so there is
4654         no need to do so through an expensive function pointer.
4655
4656 2008-10-04  Zoltan Varga  <vargaz@gmail.com>
4657
4658         * gc.c: Define a dummy version of mono_gc_add_finalizer_thread_callback ()
4659         for the no-gc case.
4660         * attach.c (mono_attach_init): Remove the #ifdef.
4661
4662 2008-10-04  Andreas Färber  <andreas.faerber@web.de>
4663
4664         * attach.c (mono_attach_init): Don't use
4665         mono_gc_add_finalizer_thread_callback when compiling without GC.
4666         Fixes #432306.
4667         
4668         Code is contributed under MIT/X11 license.
4669
4670 2008-10-03  Zoltan Varga  <vargaz@gmail.com>
4671
4672         * class.c (mono_class_create_from_typedef): Remove the 
4673         #ifndef DISABLE_SIMD stuff.
4674
4675 2008-10-03  Rodrigo Kumpera  <rkumpera@novell.com>
4676
4677         * class-internals.h (MonoClass): Added simd_type bit field.
4678
4679         * class.c (mono_class_create_from_typedef): Check if type is a simd
4680         intrinsic.
4681
4682 2008-10-03  Mark Probst  <mark.probst@gmail.com>
4683
4684         * object.c (mono_method_add_generic_virtual_invocation): Only add
4685         instantiations to the thunk whose count is at least as large as
4686         the threshold.
4687
4688 2008-10-02 Gonzalo Paniagua Javier <gonzalo@novell.com>
4689
4690         * icall.c: changed the Type of the exception thrown when trying to
4691         invoke a constructor on an abstract class. Part of the fix for bug
4692         #324185.
4693
4694 2008-10-02  Mark Probst  <mark.probst@gmail.com>
4695
4696         * class.c, class-internals.h (mono_method_get_vtable_index): New
4697         function which returns the index into the vtable and properly
4698         handles inflated virtual generic methods.
4699
4700 2008-10-01  Mark Probst  <mark.probst@gmail.com>
4701
4702         * object.c, domain.c, object-internals.h, domain-internals.h:
4703         Generalize IMT thunk machinery to also handle thunks for virtual
4704         generic method invokes.  When a virtual generic method is invoked
4705         more than a number of times we insert it into the thunk so that it
4706         can be called without lookup in unmanaged code.
4707
4708         * generic-sharing.c, class-internals.h: Fetching a
4709         MonoGenericInst* for a method from an (M)RGCTX.
4710
4711 2008-10-01  Zoltan Varga  <vargaz@gmail.com>
4712
4713         * marshal.c (emit_marshal_string): Applied a variant of a patch by
4714         tom hindle <tom_hindle@sil.org>. Fix byref native-to-managed string
4715         marshalling. Fixes #431304.
4716
4717 2008-10-01  Bill Holmes  <billholmes54@gmail.com>
4718
4719         * marshal.c (emit_marshal_variant) : Change the attribute checks to 
4720           handle when ref is specified without In or Out.
4721
4722         Code is contributed under MIT/X11 license.
4723
4724 2008-09-30  Mark Probst  <mark.probst@gmail.com>
4725
4726         * loader.c (mono_get_method_constrained): Don't expand method with
4727         the class's context, because it's already a method of that class.
4728
4729 2008-09-30  Atsushi Enomoto  <atsushi@ximian.com>
4730
4731         * attach.c : should be correct build fix.
4732
4733 2008-09-29  Zoltan Varga  <vargaz@gmail.com>
4734
4735         * attach.c: Fix the previous change.
4736
4737 2008-09-29  Atsushi Enomoto  <atsushi@ximian.com>
4738
4739         * attach.c : quick w32 build fix.
4740
4741 2008-09-27  Miguel de Icaza  <miguel@novell.com>
4742
4743         * Turn off MONO_GENERIC_SHARING=all and go back to corlib as it
4744         crashes MonoDevelop: #430455.
4745
4746 2008-09-27  Zoltan Varga  <vargaz@gmail.com>
4747
4748         * domain-internals.h (struct _MonoDomain): Move most fields used only by
4749         the JIT do MonoJitDomainInfo in ../mini/mini.h.
4750
4751         * domain.c: Remove initialization/cleanup of the removed fields.
4752
4753 2008-09-27  Mark Probst  <mark.probst@gmail.com>
4754
4755         * class.c (mono_class_generic_sharing_enabled): Enable generic
4756         code sharing for PPC.
4757
4758 2008-09-26  Bill Holmes  <billholmes54@gmail.com>
4759
4760         * attach.c : Fixing the Windows builds.
4761
4762         Code is contributed under MIT/X11 license.
4763
4764 2008-09-25  Zoltan Varga  <vargaz@gmail.com>
4765
4766         * class.c (mono_class_generic_sharing_enabled): Experimentally change 
4767         the default generic sharing mode to 'all'.
4768
4769 2008-09-25  Mark Probst  <mark.probst@gmail.com>
4770
4771         * generic-sharing.c, class-internals.h: New function for checking
4772         whether a method needs a static RGCTX invoke wrapper.  A few
4773         funtions moved from mini/generic-sharing.c.
4774
4775         * icall.c: New function used.
4776
4777 2008-09-25  Mark Probst  <mark.probst@gmail.com>
4778
4779         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal):
4780         Static RGCTX invoke wrapping applies to value type methods, too.
4781
4782         * class.c (mono_class_setup_vtable_general): In generic-shared
4783         value types, wrap methods with a static RGCTX invoke wrapper.
4784
4785 2008-09-25  Zoltan Varga  <vargaz@gmail.com>
4786
4787         * attach.c (ipc_connect): Use AF_UNIX instead of AF_FILE to fix the
4788         osx build.
4789
4790 2008-09-24  Zoltan Varga  <vargaz@gmail.com>
4791
4792         * gc.c (mono_gc_add_finalizer_thread_callback): New function to
4793         register a callback which is called when the finalizer thread is woken
4794         up.
4795         (finalizer_thread): Call the callback if it exists.
4796
4797         * attach.h attach.c: New files, implementing the attach mechanism.
4798
4799         * appdomain.c: Init/cleanup the attach mechanism on startup/shutdown.
4800         
4801         * object.c (mono_object_get_virtual_method): Fix an assertion introduced
4802         by the previous change.
4803
4804 Tue Sep 23 15:24:03 CEST 2008 Paolo Molaro <lupus@ximian.com>
4805
4806         * class.c, domain-internals.h, domain.c, generic-sharing.c, image.c,
4807         loader.c, marshal.c, metadata-internals.h, metadata.c,
4808         method-builder.c, object.c, reflection.c: introduced specific functions
4809         to allocate from the domain and image mempools and cleaned up most of
4810         the code to use them (still missing a few in reflection.c).
4811         Keep the loader bytes counter updated.
4812
4813 Mon Sep 22 17:33:12 CEST 2008 Paolo Molaro <lupus@ximian.com>
4814
4815         * domain.c, monitor.c, boehm-gc.c, gc.c: update some of the GC and
4816         loader-related counters.
4817
4818 Mon Sep 22 17:29:54 CEST 2008 Paolo Molaro <lupus@ximian.com>
4819
4820         * mono-perfcounters-def.h, mono-perfcounters.c, class-internals.h:
4821         added more MS-compatible counters.
4822
4823 2008-09-22  Zoltan Varga  <vargaz@gmail.com>
4824
4825         * class.c (mono_class_setup_fields): Call setup_fields before accessing
4826         class->blittable. Fixes #428217.
4827
4828 2008-09-21  Zoltan Varga  <vargaz@gmail.com>
4829
4830         * reflection.c (mono_image_get_field_on_inst_token): Call 
4831         field_encode_signature () since that handles custom modifiers too.
4832         Fixes #424663.
4833
4834 2008-09-20  Zoltan Varga  <vargaz@gmail.com>
4835
4836         * reflection.c (add_custom_modifiers): New helper function to merge custom
4837         modifiers stored in objects to a MonoType.
4838         (fieldref_encode_signature): Encode custom modifiers.
4839         (mono_image_get_generic_field_token): Call add_custom_modifiers ().
4840         (fieldbuilder_to_mono_class_field): Ditto. Fixes #424663.
4841
4842 2008-09-19  Kornél Pál  <kornelpal@gmail.com>
4843
4844         * coree.c (_CorValidateImage): Some 64-bit IL only images have entry point
4845         calling _CorDllMain imported from mscoree.dll. Set entry point RVA to 0 for
4846         64-bit IL only images because imports are not resolved for IL only images.
4847         Special thanks to Bill Holmes for finding this bug and testing the patch.
4848         Also fail for 64-bit images marked as CLI_FLAGS_32BITREQUIRED.
4849
4850         Contributed under MIT/X11 license.
4851
4852 2008-09-19  Miguel de Icaza  <miguel@novell.com>
4853
4854         * mono-config.c (dllmap_start): Add support for the bits keyword
4855         on dllentry and dllmap to easily detect 32 vs 64 bit systems.
4856
4857 2008-09-19  Mark Probst  <mark.probst@gmail.com>
4858
4859         * reflection.c (inflate_mono_method): When the class the method is
4860         to be inflated for is itself not inflated, just return the method.
4861
4862 Fri Sep 19 11:51:36 CEST 2008 Paolo Molaro <lupus@ximian.com>
4863
4864         * mono-perfcounters.c: use more user friendly process instance names.
4865
4866 2008-09-18  Bill Holmes  <billholmes54@gmail.com>
4867
4868         * marshal.c (emit_marshal_variant) : Change the attribute checks to 
4869           handle "[in] ref" and "[in][out] ref" cases.
4870
4871         * marshal.c (cominterop_get_ccw) : The wrong signature was being passed
4872           to mono_mb_create_method.  This was causing problems calling native to
4873           managed passing Variants by value.
4874
4875         Code is contributed under MIT/X11 license.
4876
4877 2008-09-18  Zoltan Varga  <vargaz@gmail.com>
4878
4879         * class.c (can_access_internals): Call mono_assembly_load_friends ()
4880         before accessing the friend_assembly_names field.
4881
4882         * assembly.c (mono_assembly_load_friends): Make this callable multiple
4883         times.
4884         (mono_assembly_load_from_full): Avoid calling load_friends (), it is
4885         called lazily when it is needed.
4886
4887         * metadata-internals.h (struct _MonoAssembly): Add 
4888         'friend_assembly_names_inited' flag.
4889
4890 Thu Sep 18 18:18:47 CEST 2008 Paolo Molaro <lupus@ximian.com>
4891
4892         * mono-perfcounters-def.h: fix the types of a few counters.
4893         * mono-perfcounters.c: implemented the instance names getter
4894         and a few bugfixes.
4895
4896 2008-09-18  Atsushi Enomoot  <atsushi@ximian.com>
4897
4898         * culture-info-table.h : regenerated.
4899
4900 2008-09-17  Robert Jordan  <robertj@gmx.net>
4901
4902         * marshal.c (mono_marshal_get_ldflda_wrapper): Add support for
4903         context bound objects. Fixes #415577.
4904
4905         Code is contributed under MIT/X11 license.
4906
4907 Tue Sep 16 21:03:58 CEST 2008 Paolo Molaro <lupus@ximian.com>
4908
4909         * icall-def.h, threads-types.h, threads.c: fixed SpinWait()
4910         implementation (bug #423582).
4911
4912 2008-09-16  Zoltan Varga  <vargaz@gmail.com>
4913
4914         * object.c (mono_object_get_virtual_method): Handle the case method->slot
4915         is not set. Fixes #426309.
4916
4917 2008-09-16  Jb Evain  <jbevain@novell.com>
4918
4919         * class.c (mono_class_from_name): fix the exported type look up
4920         when the type is defined in a referenced assembly.
4921
4922 2008-09-16  Jb Evain  <jbevain@novell.com>
4923
4924         * reflection.c (mono_image_fill_export_table_from_type_forwarders):
4925         increment the next index counter on each iteration to make that work
4926         for more than one type forwarder. Unmanaged part to fix #422929.
4927
4928 2008-09-15  Mark Probst  <mark.probst@gmail.com>
4929
4930         * object-internals.h: enum ComInterfaceType in
4931         MonoInterfaceTypeAttribute is guint32, not guint16.
4932
4933 2008-09-12  Mark Probst  <mark.probst@gmail.com>
4934
4935         * cil-coff.h, image.c, reflection.c: Endianness fixes in image
4936         writing code.
4937
4938 2008-09-11  Mark Probst  <mark.probst@gmail.com>
4939
4940         * icall.c: Boolean arguments to a runtime invoke are MonoBoolean,
4941         not gboolean.
4942
4943 2008-09-11  Mark Probst  <mark.probst@gmail.com>
4944
4945         * debug-mono-symfile.c (mono_debug_symfile_lookup_location):
4946         Endianness fixes for MonoSymbolFileOffsetTable.
4947
4948 2008-09-10  Bill Holmes  <billholmes54@gmail.com>
4949
4950         * process.c (complete_path) : Removing quotes from the 
4951           input path.  The glib file routines do not handle file paths
4952           that have quotes around them.
4953
4954         Code is contributed under MIT/X11 license.
4955
4956 2008-09-10  Bill Holmes  <billholmes54@gmail.com>
4957
4958         * socket-io.h : Adding a comment to provide locations where 
4959           changes to MonoSocketAsyncResult need to be synced.
4960
4961         Code is contributed under MIT/X11 license.
4962
4963 2008-09-10  Zoltan Varga  <vargaz@gmail.com>
4964
4965         * marshal.c (emit_marshal_custom): Call NativeToManaged for non-out 
4966         parameters as well. Fixes #425001.
4967
4968 2008-09-08  Miguel de Icaza  <miguel@novell.com>
4969
4970         * console-io.c (ves_icall_System_ConsoleDriver_TtySetup): Fix
4971         windows build.
4972
4973 2008-09-07  Miguel de Icaza  <miguel@novell.com>
4974
4975         * console-io.c: Add support for tracking the window size if it
4976         changes.
4977
4978         The setup is very simple: the TtySetup function will now return a
4979         pointer to a location in memory that tracks the current console
4980         size.  The managed code checks its current value every time its
4981         queried against the last value set, and updates accordingly.
4982
4983         With this setup we can work with multiple consoles, and we do not
4984         require to poke into managed code from a signal handler.
4985
4986         Additionally, the environment for COLUMNS and LINES is now handled
4987         in unmanaged code.
4988
4989         (ves_icall_System_ConsoleDriver_GetTtySize): This is now gone.
4990
4991 2008-09-07  Mark Probst  <mark.probst@gmail.com>
4992
4993         * marshal.c (mono_type_native_stack_size): Treat
4994         MONO_TYPE_TYPEDBYREF like MONO_TYPE_VALUETYPE.
4995
4996 2008-09-04  Jb Evain  <jbevain@novell.com>
4997
4998         * class.c (mono_class_is_assignable_from): fix assignability of nullables
4999         to nullables.
5000
5001 2008-09-03 Rodrigo Kumpera  <rkumpera@novell.com>
5002
5003         * verify.c (verify_type_compatibility_full): Revert change
5004         to allow converting a native int to unmanaged pointer be verifiable
5005         under non-strict mode.
5006         It turns out that "(IntPtr)null" is indeed unverifiable, go figure.
5007
5008         * verify.c: Added some TODOs.
5009
5010 2008-09-02  Bill Holmes  <billholmes54@gmail.com>
5011
5012         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi,
5013           ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni) :
5014           Changed to use GlobalAlloc for the memory returned on Windows platforms.
5015
5016         Code is contributed under MIT/X11 license.
5017
5018 2008-09-02  Jb Evain  <jbevain@novell.com>
5019
5020         * object.c (mono_ldstr_metdata_sig): renamed to mono_ldstr_metadata_sig.
5021
5022 2008-09-02 Rodrigo Kumpera  <rkumpera@novell.com>
5023
5024         reflection.c (typebuilder_setup_fields): Handle classes with
5025         explicit size.
5026
5027 2008-09-01 Rodrigo Kumpera  <rkumpera@novell.com>
5028
5029         class.c (mono_class_setup_events): Add memory barrier due to
5030         double checked locking.
5031         
5032         class.c (mono_class_setup_properties): Same.
5033
5034 2008-08-31  Zoltan Varga  <vargaz@gmail.com>
5035
5036         * class.c (mono_class_is_assignable_from): Fix the build.
5037         
5038         * class.c (mono_class_is_assignable_from): Call mono_class_setup_vtable ()
5039         before accessing klass->interface_bitmap. Fixes #421744.
5040
5041 2008-08-28  Zoltan Varga  <vargaz@gmail.com>
5042
5043         * appdomain.c (mono_runtime_set_no_exec): New internal function setting
5044         the runtime into no-exec mode, useful when running the AOT compiler.
5045
5046         * appdomain.c gc.c object.c: Avoid executing managed code when running
5047         in no-exec mode.
5048         
5049         * rawbuffer.c (mono_raw_buffer_load_mmap): Disable this on the iphone.
5050
5051         * reflection.c (_mono_reflection_get_type_from_info): Handle the 
5052         special case when the mono_assembly_loaded () returns NULL because the 
5053         search hook is not installed.
5054
5055 2008-08-25  Zoltan Varga  <vargaz@gmail.com>
5056
5057         * marshal.c: Applied patch from tom hindle (tom_hindle@sil.org) to fix
5058         crashes in bstr marshalling on linux.
5059
5060 2008-08-24  Zoltan Varga  <vargaz@gmail.com>
5061
5062         * debug-helpers.c (mono_type_get_desc): Fix printing of generic instances
5063         with more than one parameter.
5064
5065 2008-08-24  Miguel de Icaza  <miguel@novell.com>
5066
5067         * console-io.c (ves_icall_System_ConsoleDriver_TtySetup): Disable
5068         start/stop flow control as well when turning off ICANON (allows
5069         C-s and C-q to be read by Console.ReadKey).
5070
5071 2008-08-24  Zoltan Varga  <vargaz@gmail.com>
5072
5073         * class.c (mono_class_init): Move the initialization of nested classes
5074         into mono_class_get_nested_types (). Fixes #418433.
5075
5076         * class-internals.h (struct _MonoClass): Add a new 'nested_classes_inited'
5077         flag.
5078
5079         * class.c reflection.c icall.c: Use mono_class_get_nested_types () for 
5080         iterating tough the nested classes of a class.
5081
5082 2008-08-23  Zoltan Varga  <vargaz@gmail.com>
5083
5084         * class.c (mono_class_generic_sharing_enabled): Enable generic sharing
5085         on arm.
5086
5087 2008-08-22  Miguel de Icaza  <miguel@novell.com>
5088
5089         * console-io.c (sigcont_handler): Support signal chaining for
5090         SIGCONT.
5091
5092         (console_set_signal_handlers): Use best practices with sigaction,
5093         clear the structure before using it. 
5094
5095 2008-08-22  Robert Jordan  <robertj@gmx.net>
5096
5097         * console-io.c (ves_icall_System_ConsoleDriver_TtySetup):
5098         Fix the Windows build.
5099
5100 2008-08-22  Zoltan Varga  <vargaz@gmail.com>
5101
5102         * class.c (mono_class_generic_sharing_enabled): Make the default
5103         sharing mode 'corlib'.
5104
5105 2008-08-21  Zoltan Varga  <vargaz@gmail.com>
5106
5107         * console-io.c (console_set_signal_handlers): Fix a warning.
5108
5109         * marshal.c (mono_marshal_get_synchronized_wrapper): Call the wrapper
5110         method normally, the JIT will take care of avoiding recursion.
5111
5112 2008-08-20  Bill Holmes  <billholmes54@gmail.com>
5113
5114         * console-io.c : Fixing builds for platforms that do not have <termios.h>.
5115
5116         Code is contributed under MIT/X11 license.
5117
5118 2008-08-20  Miguel de Icaza  <miguel@novell.com>
5119
5120         * console-io.c (sigcont_handler): We need to restore the entire
5121         termios state, not only the original settings, as things like echo
5122         can be controlled after this (Booish exposes this issue with its
5123         own ReadLine implementation).
5124
5125         Additionally, we need to set the terminal back into keypad_xmit
5126         mode.
5127         
5128         (ves_icall_System_ConsoleDriver_TtySetup): Take the keypad xmit
5129         string as a paramter as well.   Otherwise we get different
5130         keyboard sequences.
5131
5132 2008-08-20  Zoltan Varga  <vargaz@gmail.com>
5133
5134         * marshal.c (emit_marshal_object): Avoid managed-to-native marshalling of
5135         delegates with byref out parameter passing. Fixes #351520.
5136
5137         * debug-helpers.c (mono_context_get_desc): New helper function to stringify
5138         a generic context.
5139         (mono_type_get_desc): Add the type arguments for GENERICINST.
5140         (mono_method_full_name): Stringify the class name using mono_type_full_name
5141         so it picks up generic arguments.
5142
5143 2008-08-19  Gert Driesen  <drieseng@users.sourceforge.net>
5144
5145         * console-io.c: Removed debug output.
5146
5147 2008-08-19 Rodrigo Kumpera  <rkumpera@novell.com>
5148
5149         reflection.c (mono_reflection_create_runtime_class): Alloc
5150         the nested classes linked list using the dynamic image mempool.
5151         Fixes leak in corlib compilation.
5152
5153 2008-08-19  Miguel de Icaza  <miguel@novell.com>
5154
5155         * console-io.c: Fix incredibly annoying behavior on the console
5156         after resuming execution after control-z.   This affected every
5157         console application.
5158
5159 2008-08-18 Rodrigo Kumpera  <rkumpera@novell.com>
5160
5161         * mempool-internals.h: Header for mono private mempool functions. The first
5162         two function are for allocating glib linked lists using pools.
5163
5164         * mempool.c: Added g_list_prepend_mempool and g_slist_prepend_mempool.
5165
5166         * Makefile.am: Added mempool-internals.h.
5167
5168 2008-08-16  Zoltan Varga  <vargaz@gmail.com>
5169
5170         * domain.c (mono_domain_create): Call the JIT domain hook if installed.
5171         (mono_domain_free): Ditto.
5172
5173         * domain-internals.h (struct _MonoDomain): Add 'runtime_info' field, this could
5174         be used by the JIT to store its domain-specific information, instead of putting
5175         it directly into MonoDomain.
5176
5177         * domain.c (mono_install_create_domain_hook): New helper function to install
5178         a hook which initializes domain->runtime_info.
5179
5180         * domain.c (mono_install_free_domain_hook): Ditto.
5181         
5182 2008-08-15  Zoltan Varga  <vargaz@gmail.com>
5183
5184         * marshal.c (mono_delegate_end_invoke): Raise an exception instead of
5185         asserting if the ares parameter is null.
5186
5187         * mono-perfcounters.c: Fix warnings.
5188
5189         * marshal.c (mono_marshal_get_delegate_begin_invoke): Don't set save_lmf, it
5190         is not needed, don't check for interruptions either.
5191         (mono_marshal_get_delegate_end_invoke): Ditto.
5192
5193 2008-08-15  Marek Habersack  <mhabersack@novell.com>
5194
5195         * mono-perfcounters.c (predef_readonly_counter): added support for
5196         reading the ASP.NET Requests Queued counter from another process.
5197
5198 2008-08-12  Zoltan Varga  <vargaz@gmail.com>
5199
5200         * metadata-internals.h: Move the 'aot_module' field from MonoAssembly to
5201         MonoImage to simplify the AOT code.
5202
5203 2008-08-10  Zoltan Varga  <vargaz@gmail.com>
5204
5205         * marshal.c (emit_marshal_object): Implement native-to-managed StringBuilder
5206         marshalling. Fixes #416078.
5207
5208 2008-08-08  Zoltan Varga  <vargaz@gmail.com>
5209         
5210         * marshal.c (mono_marshal_get_native_wrapper): Add an 'aot' argument, when
5211         it is set, looking up the icall address is deferred to the JIT, since 
5212         in embedded scenarios, the icall might not be registered in the runtime
5213         doing the AOT compilation. Backported from the 2.0 branch.
5214
5215 2008-08-08  Zoltan Varga  <vargaz@gmail.com>
5216
5217         * marshal.c (mono_remoting_wrapper): Handle nullable types correctly.
5218         Fixes #415621.
5219
5220 2008-08-05  Marek Habersack  <mhabersack@novell.com>
5221
5222         * Makefile.am: added support for cross-compilation.
5223
5224 2008-08-04  Zoltan Varga  <vargaz@gmail.com>
5225
5226         * socket-io.c (get_socket_assembly): Make 'moonlight' variable static.
5227
5228 Fri Aug 1 18:47:48 CEST 2008 Paolo Molaro <lupus@ximian.com>
5229
5230         * mono-perfcounters.c: jitted methods and jitted bytes counters.
5231
5232 Fri Aug 1 16:07:09 CEST 2008 Paolo Molaro <lupus@ximian.com>
5233
5234         * class-internals.h, icall-def.h, mono-perfcounters-def.h,
5235         mono-perfcounters.c: performance counters implementation.
5236
5237 2008-07-31  Zoltan Varga  <vargaz@gmail.com>
5238
5239         * metadata-internals.h (struct _MonoAssembly): Change the type of 'aot_module'
5240         to gpointer, letting the AOT code decide what to store in it.
5241
5242 2008-07-31  Bill Holmes  <billholmes54@gmail.com>
5243
5244         * marshal.c (cominterop_get_native_wrapper) : Adding a call to 
5245           mono_class_setup_methods if the methods are not initialized.
5246
5247         Code is contributed under MIT/X11 license.
5248
5249 2008-07-30 Rodrigo Kumpera  <rkumpera@novell.com>
5250
5251         * verify.c: Remove some debug code I commited by accident.
5252
5253         * verify.c (mono_method_is_valid_in_context): Change the return value
5254         to make possible to distinguish between invalid and unverifiable.
5255
5256         * verify.c (verifier_load_method): Don't return NULL for unverifiable
5257         methods.
5258
5259 2008-07-30 Rodrigo Kumpera  <rkumpera@novell.com>
5260
5261         * verify.c (mono_generic_param_is_constraint_compatible): Inflate type
5262         constraints. Fixes regression in gtest-253.
5263
5264 2008-07-30 Rodrigo Kumpera  <rkumpera@novell.com>
5265
5266         * verify.c (mono_verifier_verify_class): Don't allow generic types
5267         with explicit layout.
5268
5269         * verify.c (mono_method_verify): Check locals and argument types.
5270
5271 2008-07-29  Zoltan Varga  <vargaz@gmail.com>
5272
5273         * monitor.c (mono_monitor_try_enter_internal): Allow nterruption of the
5274         wait if the thread is in StopRequested state.
5275
5276         * class.c (mono_class_from_name): Refactor the module searching code into
5277         a separate function so it can be reused in the AOT case too.
5278
5279 2008-07-28 Rodrigo Kumpera  <rkumpera@novell.com>
5280
5281         * verify.c (mono_type_is_valid_in_context): Improve the error message.
5282         Check both the type and it's generic type definition for loader errors.
5283         
5284         * verify.c (mono_method_is_valid_in_context): Don't generate another
5285         error when a type errors occur, this leads to the wrong exception been
5286         thrown.
5287
5288 2008-07-28  Dick Porter  <dick@ximian.com>
5289
5290         * icall-def.h
5291         * process.c
5292         (ves_icall_System_Diagnostics_Process_ProcessHandle_duplicate):
5293         New internal calls to duplicate and close a process handle.
5294
5295 2008-07-27  Andreas Färber  <andreas.faerber@web.de>
5296
5297         * object.c (CHECK_ADD_OVERFLOW_UN): Add missing bracket. Fixes #412499.
5298
5299 2008-07-27  Zoltan Varga  <vargaz@gmail.com>
5300
5301         * appdomain.c (unload_thread_main): Attach the unload thread to the runtime.
5302
5303 2008-07-27  Robert Jordan  <robertj@gmx.net>
5304
5305         * class.c (mono_class_init): Don't compute class.has_finalize for
5306         valuetypes. Fixes #412477.
5307
5308 2008-07-25 Rodrigo Kumpera  <rkumpera@novell.com>
5309
5310         * verify.c: Implement constraint equivalence checking.
5311         This is required when a generic parameter is used as
5312         argument to a constrained one.
5313
5314         Fixes #410637.
5315
5316 2008-07-24  Zoltan Varga  <vargaz@gmail.com>
5317
5318         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5319
5320         * domain-internals.h (struct _MonoDomain): Add 'method_code_hash' field.
5321
5322         * object-internals.h (struct _MonoDelegate): Add 'method_code' field,
5323         synch with managed object layout.
5324
5325 2008-07-24 Rodrigo Kumpera  <rkumpera@novell.com>
5326
5327         * verify.c (do_branch_op): Handle valuetypes and generic
5328         arguments properly.
5329
5330         * verify.c (do_cmp_op): Same.
5331
5332         Fixes #410383.
5333
5334 2008-07-24  Mark Probst  <mark.probst@gmail.com>
5335
5336         * generic-sharing.c: Fix memory leaks.
5337
5338         * class.c, class-internals.h: Make
5339         mono_class_inflate_generic_type_with_mempool() non-static.
5340
5341 2008-07-24 Rodrigo Kumpera  <rkumpera@novell.com>
5342
5343         * pedump.c (dump_verify_info): Dump full class name.
5344
5345 2008-07-24  Mark Probst  <mark.probst@gmail.com>
5346
5347         * generic-sharing.c: Removed some old code that didn't do anything.
5348
5349 2008-07-24  Massimiliano Mantione  <massi@ximian.com>
5350         * profiler.c: Added runtime_initialized_event,
5351         mono_profiler_install_runtime_initialized and
5352         mono_profiler_runtime_initialized. This new hook tells the profiler
5353         when the runtime is sufficiently initialized to be able to call
5354         mono_thread_attach on the root appdomain.
5355         * profiler.h, profiler-private.h: Likewise.
5356
5357 2008-07-23 Rodrigo Kumpera  <rkumpera@novell.com>
5358
5359         * verify.c (do_cast): Do boxing for generic arguments as well.
5360
5361         * class.c (is_nesting_type): Drop generic instantiations before
5362         checking for nesting.
5363
5364         * class.c (can_access_instantiation): Allow access to generic
5365         arguments.
5366
5367 2008-07-23 Rodrigo Kumpera  <rkumpera@novell.com>
5368
5369         * verify.c (verify_class_for_overlapping_reference_fields):
5370         On some cases, the field size might be zero, guard against that.
5371         Fix the explicit layout check to work as expected.
5372
5373 2008-07-23  Zoltan Varga  <vargaz@gmail.com>
5374
5375         * threads.c (ves_icall_System_Threading_Thread_Abort): Avoid calling 
5376         mono_thread_resume () during shutdown, since the thread we want to abort
5377         might be suspended.
5378
5379 2008-07-22  Zoltan Varga  <vargaz@gmail.com>
5380
5381         * mono-debug-debugger.c (mono_debugger_check_breakpoints): Fix a 
5382         warning.
5383
5384         * debug-mono-symfile.c: Fix a warning.
5385
5386         * mono-perfcounters.c (get_cpu_times): Fix a warning.
5387
5388         * object.c (mono_class_vtable): Check if exception_type is set, and return
5389         NULL as defined by the function comments.
5390
5391 2008-07-22  Mark Probst  <mark.probst@gmail.com>
5392
5393         * mempool.c: Use malloc for every single mempool allocation if the
5394         configure option is set.  This makes it easier to track mempool
5395         allocations with tools like Valgrind.
5396
5397 2008-07-22  Jb Evain  <jbevain@novell.com>
5398
5399         * reflection.c (create_dynamic_mono_image): emit the same
5400         metadata version that SL2 does when creating a SL2 image.
5401
5402 2008-07-21 Rodrigo Kumpera  <rkumpera@novell.com>
5403
5404         * icall-def.h:
5405         * icall.c: New icall System.Enum:get_hashcode. This function
5406         avoids the overhead of boxing the enum to the underlying type.
5407
5408 2008-07-21  Mark Probst  <mark.probst@gmail.com>
5409
5410         * reflection.c (mono_method_get_object): Don't let static RGCTX
5411         invoke wrappers get into MonoReflectionMethods.
5412
5413 2008-07-17 Rodrigo Kumpera  <rkumpera@novell.com>
5414
5415         * object-internals.h:
5416         * object.c: New mono_runtime_class_init_full function
5417         that makes throwing the exception optinal.
5418
5419         * class-internals.h: New exception type MONO_EXCEPTION_OBJECT_SUPPLIED
5420         for the case where the exception object is supplied.
5421
5422 2008-07-16  Kornél Pál  <kornelpal@gmail.com>
5423
5424         * coree.h: Define __ImageBase as _image_base__ on cygwin that fixes build with
5425         old ld versions.
5426
5427         Contributed under MIT/X11 license.
5428
5429 2008-07-16 Rodrigo Kumpera  <rkumpera@novell.com>
5430
5431         * string-icalls.c (ves_icall_System_String_InternalSplit):
5432         Optimize array allocation by caching the MonoClass of the
5433         array type.
5434
5435         * icall.c (ves_icall_Type_GetMethodsByName): Same.
5436
5437         * reflection.c (mono_param_get_objects): Same.
5438
5439 2008-07-16 Rodrigo Kumpera  <rkumpera@novell.com>
5440
5441         * icall-def.h:
5442         * icall.c: New ves_icall_MonoGenericClass_InflateType icall.
5443         It inflates the given type using the class context.
5444
5445 2008-07-15 Rodrigo Kumpera  <rkumpera@novell.com>
5446
5447         * object.c (mono_class_try_get_vtable): New function. Tries to fetch
5448         the vtable if it already exists.
5449
5450         * object-internals.h: Add mono_class_try_get_vtable as part of the
5451         internal API.
5452
5453         * reflection.c (mono_type_get_object): Use the MonoObject from the
5454         vtable when possible. Reduces locking contention on reflection heavy
5455         code.
5456
5457 2008-07-15  Zoltan Varga  <vargaz@gmail.com>
5458
5459         * decimal.c (my_g_bit_nth_msf): Implement this directly without calling
5460         g_bit_nth_msf () since that macro is not implemented in eglib.
5461
5462 2008-07-13  Zoltan Varga  <vargaz@gmail.com>
5463
5464         * class.c (mono_class_generic_sharing_enabled): Always disable generic sharing
5465         on platforms which do not support it.
5466
5467 2008-07-12  Zoltan Varga  <vargaz@gmail.com>
5468
5469         * marshal.c (mono_signature_to_name): Encode sig->hasthis as well.
5470
5471 2008-07-11  Martin Baulig  <martin@ximian.com>
5472
5473         * mono-debug-debugger.h
5474         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_INTERRUPTION_REQUEST'.
5475
5476         * mono-debug-debugger.c
5477         (_mono_debugger_interruption_request): New global volatile variable.
5478         (mono_debugger_check_interruption): New public function.
5479
5480         * threads.c
5481         (mono_thread_current_check_pending_interrupt): Call
5482         mono_debugger_check_interruption().
5483         (mono_thread_interruption_checkpoint_request): Likewise.
5484
5485 2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
5486
5487         * verify.c: Add more type checks for loaded types. Verify the result
5488         handle from ldtoken.
5489
5490 2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
5491
5492         * loader.c (field_from_memberref): Don't crash if the field
5493         wasn't found.
5494
5495 2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
5496
5497         * verify.c: Verify if type and method instantiations
5498         don't have invalid VAR or MVAR arguments.
5499
5500 2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
5501
5502         * verify.c: Fix double free of function pointer list.
5503
5504 2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
5505
5506         * object.c (mono_string_to_utf8): Comment the new code as it
5507         breaks under eglib.
5508
5509 2008-07-08 Rodrigo Kumpera  <rkumpera@novell.com>
5510
5511         * object.c (mono_string_to_utf8): Avoid allocating a temp array.
5512
5513 2008-07-07  Bill Holmes  <billholmes54@gmail.com>
5514
5515         * threads.c : Thread.Interrupt changes to ensure that ThreadInterruptedException
5516           is not throw too many times.
5517
5518         Code is contributed under MIT/X11 license.
5519
5520 2008-07-07  Zoltan Varga  <vargaz@gmail.com>
5521
5522         * mono-debug.c (mono_debug_find_method): Allow this to be called even when
5523         debugging is turned off.
5524
5525 2008-07-06  Zoltan Varga  <vargaz@gmail.com>
5526
5527         * generic-sharing.c (mono_method_lookup_rgctx): Fix a warning.
5528
5529 2008-07-04  Mark Probst  <mark.probst@gmail.com>
5530
5531         * class-internals.h, class.c: Added new generic sharing option:
5532         Share only stuff in System.Collections.Generic, which is now the
5533         default.
5534
5535 2008-07-04  Mark Probst  <mark.probst@gmail.com>
5536
5537         * generic-sharing.c, class-internals.h: New function for getting a
5538         generic method in a generic class given the corresponding method
5539         for a different instantiation of the class.  Partly refactored
5540         from mini-trampolines.c.
5541
5542         * class.c: Make sure generic methods have a class_inst if they are
5543         part of a generic class.
5544
5545         * metadata.c (mono_type_stack_size_internal): Handle type
5546         variables.
5547
5548 2008-07-04  Mark Probst  <mark.probst@gmail.com>
5549
5550         * domain-internals.h: New field (has_this) in MonoGenericJitInfo.
5551         Signifies whether information on the this/vtable/mrgctx variable
5552         is available.
5553
5554 2008-07-04  Mark Probst  <mark.probst@gmail.com>
5555
5556         * object.c, object-internals.h, icall.c: New function
5557         mono_delegate_ctor_with_method(), which does the same as
5558         mono_delegate_ctor(), but takes an explicit method argument
5559         instead of taking the method from the jit info.
5560
5561         * marshal.c: When creating a delegate with an inflated method take
5562         the "this" argument as the target class for the castclass.
5563
5564 2008-07-03  Mark Probst  <mark.probst@gmail.com>
5565
5566         * domain.c (mono_jit_info_table_find): Fixed a bug that caused
5567         mono_jit_info_table_find() to perform very badly in some cases.
5568
5569 2008-07-02  Zoltan Varga  <vargaz@gmail.com>
5570
5571         * icall.c (type_from_typename): Handle 'string'.
5572
5573         * marshal.c (mono_marshal_get_runtime_invoke): Don't insert runtime invoke
5574         wrappers into the wrapper_hash, since the key is not a MonoMethod.
5575
5576 2008-07-01  Zoltan Varga  <vargaz@gmail.com>
5577
5578         * icall.c (mono_get_jit_icall_info): New function to return the jit icall hash table.
5579
5580         * *-gc.c (mono_gc_get_managed_allocator_types): New function to return the
5581         number of available managed allocator types.
5582
5583         * marshal.c (mono_marshal_init): Register Thread:ResetAbort as an icall ().
5584         (mono_marshal_get_runtime_invoke): Call ResetAbort as an icall.
5585
5586 2008-06-30  Zoltan Varga  <vargaz@gmail.com>
5587
5588         * domain-internals.h (struct _MonoDomain): Add 'jit_code_hash_lock' field,
5589         which is a low level lock protecting just the 'jit_code_hash' hash table.
5590
5591         * domain.c: Initialize+cleanup jit_code_hash_lock.
5592         
5593 2008-06-30  Kornél Pál  <kornelpal@gmail.com>
5594
5595         * coree.c (mono_load_coree): Set coree_module_handle global variable only
5596         after initialization.
5597
5598         * coree.h: Make MonoFixupExe internal.
5599
5600         Contributed under MIT/X11 license.
5601
5602 2008-06-30  Kornél Pál  <kornelpal@gmail.com>
5603
5604         * coree.c (_CorValidateImage): Retain IMAGE_DIRECTORY_ENTRY_SECURITY
5605         because that is platform independent. Check NumberOfRvaAndSizes in PE32
5606         as well.
5607         (MonoLoadImage): New wrapper function around LoadLibrary to ensure that the
5608         image being loaded is a CLI image and _CorValidateImage gets called.
5609
5610         * coree.h: Add MonoLoadImage.
5611
5612         * image.c (mono_image_open_full): Load CLI images using MonoLoadImage
5613         instead of LoadLibrary.
5614
5615         Contributed under MIT/X11 license.
5616
5617 2008-06-29 Rodrigo Kumpera  <rkumpera@novell.com>
5618
5619         * icall.c (ves_icall_System_ValueType_Equals): Avoid allocating objects
5620         for any primitive type.
5621
5622 2008-06-29  Zoltan Varga  <vargaz@gmail.com>
5623
5624         * object.c (mono_array_new_specific): Optimize this and the other allocation
5625         functions a bit.
5626         
5627         * object.c (mono_class_create_runtime_vtable): Use typed allocation in other
5628         domains too if mono_dont_free_domains is set.
5629
5630         * domain-internals.h (mono_dont_free_domains): New internal option controlling
5631         whenever to free appdomain data after it has been unloaded.
5632
5633         * domain.c (mono_domain_free): Don't free appdomain data if the option is set.
5634         
5635 2008-06-28  Zoltan Varga  <vargaz@gmail.com>
5636
5637         * icall.c (ves_icall_System_Enum_get_underlying_type): New icall.
5638         (mono_method_get_equivalent_method): Fix a warning.
5639
5640         * object.c (mono_message_init): Avoid looking up array types for each call.
5641
5642 2008-06-27  Zoltan Varga  <vargaz@gmail.com>
5643
5644         * object.c (mono_message_invoke): Avoid looking up the object[] type for each
5645         call.
5646
5647         * icall.c (ves_icall_System_ValueType_Equals): Optimize the comparison of enums
5648         even more.
5649
5650         * class.c (mono_class_get_fields): Avoid calling setup_fields_locking () for
5651         each iteration.
5652
5653         * icall.c (ves_icall_System_ValueType_Equals): Avoid traversing all the static
5654         fields of an enum.
5655
5656 2008-06-26 Rodrigo Kumpera  <rkumpera@novell.com>
5657
5658         * object.c (mono_value_box): Fix boxing of nullables.
5659
5660 2008-06-26  Kornél Pál  <kornelpal@gmail.com>
5661
5662         * assembly.c (mono_set_rootdir): Use __ImageBase instead of
5663         mono_module_handle that is defined by the linker; no initialization required.
5664         * coree.h: Remove mono_module_handle, add __ImageBase, update
5665         mono_image_open_from_module_handle.
5666         * coree.c (_CorValidateImage): Convert platform independent PE32 images to
5667         PE32+ on 64-bit Windows that makes the OS able to load CIL images as modules.
5668         (MonoFixupCorEE): Export Address Table RVAs are 32-bit unsigned integers so
5669         memory has to be allocated for trampolines (x64) or procedure labels (IA64) up
5670         to 4 GB away from image base address. IA64 version is not tested but was very
5671         easy to implement and should work if we ever need it.
5672         * domain.c (mono_init_internal): Avoid system error message boxes.
5673         * image.c (mono_image_open_from_module_handle): Replace ref_count argument
5674         with has_entry_point. Handle do_mono_image_load fauilre correctly.
5675         (mono_image_open_full, mono_image_close): Use has_entry_point instead of
5676         coff_attributes that is a more reliable way to detect if _CorDllMain was called.
5677         * metadata-internals.h: Add has_entry_point to _MonoImage on Windows.
5678
5679         Contributed under MIT/X11 license.
5680
5681 2008-06-25 Rodrigo Kumpera  <rkumpera@novell.com>
5682
5683         * class.c, class-internals.h: Export mono_class_get_generic_type_definition
5684         as part of the private mono API.
5685         
5686         * loader.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandleInternalType):
5687         Do proper argument checking for methods that belong to generic classes.
5688         Do proper type resolution for GMFH/2.
5689         Fixes #377324.
5690         
5691 2008-06-25 Rodrigo Kumpera  <rkumpera@novell.com>
5692
5693         * verify.c (do_switch): Fix a memory corruption bug with
5694         the jump index is out of bound.
5695
5696 2008-06-25 Rodrigo Kumpera  <rkumpera@novell.com>
5697
5698         * verify.c: Disable debug code.
5699
5700 2008-06-25 Rodrigo Kumpera  <rkumpera@novell.com>
5701
5702         * reflection.c (mono_image_get_methodbuilder_token): Use
5703         mono_image_get_methodspec_token_for_generic_method_definition
5704         instead of mono_image_get_memberref_token. We cache more memberef
5705         entries now.
5706
5707 2008-06-24 Rodrigo Kumpera  <rkumpera@novell.com>
5708
5709         * verify.c: Inflate exception clause types.
5710         Fixes #402606.
5711         
5712 2008-06-24 Rodrigo Kumpera  <rkumpera@novell.com>
5713
5714         * reflection.c (mono_image_get_methodbuilder_token): Don't leak
5715         name.
5716
5717         * reflection.c (mono_image_get_ctorbuilder_token): Same.
5718
5719         * reflection.c (mono_image_create_method_token): Same.
5720
5721 2008-06-24 Rodrigo Kumpera  <rkumpera@novell.com>
5722
5723         * reflection.c: Added mono_image_get_methodref_token_for_methodbuilder.
5724         It does the same as mono_image_get_methodref_token but works on
5725         MethodBuilder.
5726
5727         * reflection.c: Use mono_image_get_methodspec_token_for_generic_method_definition
5728         and always generate a methodspec. This follows the old behavior and fixes
5729         the regressions in System.Core. 
5730
5731 2008-06-24  Zoltan Varga  <vargaz@gmail.com>
5732
5733         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Collect exceptions for classes where 
5734         don't event mono_class_get () succeeds. Fixes #402182.
5735
5736 2008-06-20 Rodrigo Kumpera  <rkumpera@novell.com>
5737
5738         * metadata-internals.h: Added MonoDynamicImage::methodspec
5739         hashtable to store methodspec tokens created for MethodBuilders.
5740
5741         * reflection.c (mono_image_get_methodbuilder_token): Encode generic
5742         MethodBuilders as open instantiations if a methodspec was requested.
5743
5744         * reflection.c (fixup_method): Skip MethodBuilder with methodspec tokens.
5745
5746         * reflection.c (create_dynamic_mono_image): Create the methodspec hashtable.
5747
5748         * reflection.c (mono_dynamic_image_free): Release the methodspec hashtable.
5749
5750         Fixes bug #349190.
5751
5752 2008-06-20 Rodrigo Kumpera  <rkumpera@novell.com>
5753
5754         * loader.c (method_from_methodspec): Avoid crashing if the
5755         method lookup fails.
5756
5757 2008-06-20  Dick Porter  <dick@ximian.com>
5758
5759         * socket-io.c (get_socket_assembly): Cope with Moonlight network
5760         classes being in a different assembly.  Fixes bug 399184.
5761
5762 2008-06-20  Zoltan Varga  <vargaz@gmail.com>
5763
5764         * loader.c (mono_loader_init): Make this callable multiple times.
5765         (mono_dllmap_insert): Call mono_loader_init () so this works even before
5766         the runtime is initialized. Fixes #401755.
5767
5768 2008-06-19  Dick Porter  <dick@ximian.com>
5769
5770         * socket-io.c (convert_socketflags): Ignore SocketFlags.Partial.
5771         Fixes bug 349688.
5772
5773 2008-06-19  Dick Porter  <dick@ximian.com>
5774
5775         * socket-io.c:
5776         * icall-def.h: Implement Socket generic Send() and Receive()
5777         methods.  Fixes bug 395168.
5778
5779 2008-06-19  Kornél Pál  <kornelpal@gmail.com>
5780
5781         * icall-def.h, icall.c: Add ves_icall_System_Reflection_Module_GetHINSTANCE.
5782
5783         Contributed under MIT/X11 license.
5784
5785 2008-06-18  Martin Baulig  <martin@ximian.com>
5786
5787         * mono-debug.h (MONO_DEBUGGER_VERSION): Split into
5788         `MONO_DEBUGGER_MAJOR_VERSION' and `MONO_DEBUGGER_MINOR_VERSION';
5789         set to 80.0.  The debugger <-> runtime interface is now frozen as
5790         well.   
5791
5792         * mono-debug.c
5793         (mono_debug_debugger_version): Bump to 4.
5794
5795 2008-06-18  Martin Baulig  <martin@ximian.com>
5796
5797         * debug-mono-symfile.c
5798         (load_symfile): Don't check the minor version.
5799
5800         * debug-mono-symfile.h: Bump the version number to 50.0.
5801
5802 2008-06-18  Martin Baulig  <martin@ximian.com>
5803
5804         * debug-mono-symfile.c
5805         (load_symfile): Treat `MONO_SYMBOL_FILE_MINOR_VERSION' as a
5806         minimum required version.
5807
5808 2008-06-17 Rodrigo Kumpera  <rkumpera@novell.com>
5809
5810         * reflection.c (mono_custom_attrs_from_property): Fix support for
5811         retriveving cattrs of dynamic inflated generic types.
5812
5813         * reflection.c (mono_custom_attrs_from_event): Same.
5814
5815         * reflection.c (mono_custom_attrs_from_field): Same;
5816
5817         * reflection.c (typebuilder_setup_events): Same cattrs of events.
5818
5819         * loader.c (-mono_metadata_get_corresponding_field_from_generic_type_definition):
5820         Moved to metadata.c.
5821
5822         * metadata.c: New functions to retrive the equivalent field, event
5823         of property from the generic type definition.
5824
5825         * metadata-internals.h: Added new functions from metadata.c.
5826
5827 2008-06-17 Rodrigo Kumpera  <rkumpera@novell.com>
5828
5829         * reflection.c (mono_custom_attrs_from_builders): Mark MonoCustomAttrInfo
5830         to cached in a mempool is used.
5831
5832         * metadata.c (free_generic_class): In some situations field generic_info type
5833         is not properly dup'ed and leads to double free'ing.
5834
5835         Fixes #400643.
5836
5837 2008-06-17  Mark Probst  <mark.probst@gmail.com>
5838
5839         * marshal.c (mono_marshal_get_static_rgctx_invoke): Also handle
5840         this arguments (will be needed later for generic methods).
5841         Collect stats.
5842
5843 2008-06-17  Mark Probst  <mark.probst@gmail.com>
5844
5845         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal):
5846         Create a static RGCTX invoke wrapper for methods which require it.
5847
5848 2008-06-17  Mark Probst  <mark.probst@gmail.com>
5849
5850         * object.c, class-internals.h: New function for checking whether
5851         an individual field is special static.
5852
5853 2008-06-15  Zoltan Varga  <vargaz@gmail.com>
5854
5855         * metadata.c (mono_metadata_get_generic_param_row): Use bsearch instead of
5856         linear search since the table is sorted.
5857
5858         * gc.c (mono_gc_cleanup): Abort the finalizer thread more gracefully.
5859         Fixes #324180.
5860
5861 2008-06-14  Zoltan Varga  <vargaz@gmail.com>
5862
5863         * appdomain.c (unload_thread_main): Applied patch from Tim Howard 
5864         (timh@ict.om.org). Remove the timeouts when waiting for appdomains to unload.
5865
5866         * gc.c (mono_domain_finalize): Allow an infinite timeout.
5867
5868         * threads.c (mono_threads_abort_appdomain_threads): Ditto.
5869         
5870         * threads.c (mono_thread_request_interruption): Get rid of locking, use
5871         InterlockedCompareExchange to query and modify 
5872         thread->interruption_requested.
5873
5874         * object-internals.h (struct _MonoThread): Change interruption_requested
5875         to a gint32 so it can be modified by atomic operations. Add 
5876         'critical_region_level' from the managed side, change small_id to a guint32,
5877         add new set of 'unused' fields.
5878
5879         * appdomain.c: Bump corlib version.
5880
5881 2008-06-13  Zoltan Varga  <vargaz@gmail.com>
5882
5883         * class.c (mono_class_from_name): Search modules as well. Fixes
5884         #322332.
5885
5886 2008-06-13  Mark Probst  <mark.probst@gmail.com>
5887
5888         * generic-sharing.c: Code for maintaining the MRGCTX and MRGCTX
5889         templates.  Templates are generalized with an additional type_argc
5890         argument.  RGCTX templates have type_argc==0, MRGCTX templates
5891         have type_argc>0.
5892
5893         * domain-internals.h, domain.c: New hash table for looking up
5894         MRGCTXs.
5895
5896         * metadata.c, metadata-internals.h: Rename hash and equal
5897         functions for MonoGenericInst's and make them public.
5898
5899         * class-internals.h: New data structures for the MRGCTX.  Macros
5900         for distinguishing slots in the RGCTX and the MRGCTX.
5901
5902 2008-06-13  Mark Probst  <mark.probst@gmail.com>
5903
5904         * object.c (mono_method_get_imt_slot): Put the same methods of
5905         different instantiations of the same generic interface in the same
5906         IMT slots, to make generic sharing simpler.
5907
5908 2008-06-12 Rodrigo Kumpera  <rkumpera@novell.com>
5909
5910         * metadata-internals.h: Added mono_metadata_field_info_with_mempool.
5911
5912         * metadata.c (mono_metadata_field_info_with_mempool): Added.
5913         This function works just like mono_metadata_field_info, but
5914         accept a mempool as argument to be used allocating memory.
5915
5916         * marshal.c (mono_marshal_load_type_info): Use new function
5917         to load marshal data into image mempool.
5918
5919 2008-06-12 Rodrigo Kumpera  <rkumpera@novell.com>
5920
5921         * class.c (mono_class_inflate_generic_type_with_mempool):
5922         This function allows to inflate a generic type using
5923         a mempool.
5924
5925         * class.c (inflate_generic_type): Take a mempool as argument
5926         and use it to do type dup'ing.
5927
5928         * class.c (mono_class_setup_fields): Field type for generic
5929         generic classes are allocated from the image mempool.
5930
5931         * metadata.c (free_generic_class): Inflated field type is
5932         now allocated in the image mempool.
5933
5934 2008-06-12 Rodrigo Kumpera  <rkumpera@novell.com>
5935
5936         * threads.c (thread_cleanup): Free MonoThread::name.
5937
5938 2008-06-12  Marek Habersack  <mhabersack@novell.com>
5939
5940         * appdomain.c (ensure_directory_exists): avoid unnecessary
5941         mkdir(2) calls when the shadow directory already exists.
5942         (mono_make_shadow_copy): copy also satellite assemblies from the
5943         private bin directories.
5944
5945 2008-06-11  Zoltan Varga  <vargaz@gmail.com>
5946
5947         * threads.c (mono_thread_get_stack_bounds): Align the stack in all cases.
5948         
5949         * threads.c (mono_thread_get_stack_bounds): Align the stack address to
5950         a page boundary. Fixes #396219.
5951
5952 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
5953
5954         * marshal.c (mono_marshal_load_type_info): Add a memory barrier
5955         due to double-checked locking.
5956
5957 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
5958
5959         * assembly.c (build_assembly_name): Release memory on failure.
5960
5961         * assembly.c (mono_assembly_name_parse_full): Release memory on failure.
5962
5963 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
5964
5965         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Release
5966         memory on failure.
5967
5968 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
5969
5970         * icall.c (ves_icall_System_Reflection_AssemblyName_ParseName): Release
5971         memory on failure.
5972
5973 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
5974
5975         * loader.c (field_from_memberref): Check if field signature type is equal
5976         to the non-inflated type of the field. Fixes #398980.
5977
5978 2008-06-11  Zoltan Varga  <vargaz@gmail.com>
5979
5980         * assembly.c (mono_assembly_load_from_full): Call 
5981         mono_assembly_load_friends () outside the assemblies lock, since it can
5982         acquire the loader lock. Fixes #323696.
5983
5984         * reflection.c (resolve_object): Inflate the inst with the context for
5985         FieldOnTypeBuilderInst. Fixes #399010.
5986
5987 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
5988
5989         * reflection.c (mono_image_get_field_on_inst_token): Don't
5990         inflate the field to encode it's signature. If it's a
5991         VAR or MVAR it should stay that way in the signature.
5992         Fixes #399047.
5993
5994 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
5995
5996         * reflection.c (resolve_object): Release memory of inflated types.
5997
5998 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
5999
6000         * loader.c (mono_method_get_signature_full): Remove assert about
6001         loading a methodspec to a generic method. We have such methods, such as
6002         System.Threading.Interlocked::CompareExchange<T>.
6003         This assert was removed since it crashes the verifier when it checks
6004         methods calling CompareExchange<T>.
6005
6006 2008-06-10  Marek Safar  <marek.safar@gmail.com>
6007
6008         * icall.c (ves_icall_MonoMethod_GetGenericArguments): Creates an instance
6009         of Type array and not MonoType.
6010
6011 2008-06-10  Marek Habersack  <mhabersack@novell.com>
6012
6013         * profiler.c: fix a segfault on shutdown. Patch from Paolo Molaro
6014         <lupus@ximian.com>
6015
6016 2008-06-10  Martin Baulig  <martin@ximian.com>
6017
6018         * debug-mono-symfile.h
6019         (MONO_SYMBOL_FILE_MINOR_VERSION): Bump to 6.  There were no
6020         changes to the file format, but we were generating incorrect
6021         source file indices in the line number table due to a bug, which
6022         made backtraces report an incorrect source file.
6023
6024 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
6025
6026         * mono-debug.c: Moved mono_debug_free_method_jit_info from
6027         mini/debug-mini.c to here.
6028
6029         * mono-debug.c (il_offset_from_address): Free memory from find_method.
6030
6031         * mono-debug.h: Export mono_debug_free_method_jit_info, users should
6032         use it to release structs returned by mono_debug_find_method.
6033
6034 2008-06-10  Zoltan Varga  <vargaz@gmail.com>
6035
6036         * class.c (mono_class_setup_vtable): Call setup_methods even for interfaces
6037         since it needs to set method->slot for all interface methods.
6038
6039 2008-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
6040
6041         * class-internals.h: Forgot to add.
6042
6043 2008-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
6044
6045         * class-internals.h: Added MONO_PROP_DYNAMIC_CATTR.
6046
6047         * reflection.c (lookup_custom_attr): Added a MonoImage argument.
6048         Lookup the custom attributes from property_hash.
6049
6050         * reflection.c (mono_save_custom_attrs): Save the custom attributes
6051         in property_hash. Allocate all data using the image mempool.
6052
6053         * reflection.c: Removed dynamic_custom_attrs. Changed all checks
6054         for dynamic_custom_attrs to checks if the image is dynamic.
6055
6056 2008-06-09  Zoltan Varga  <vargaz@gmail.com>
6057
6058         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Free the
6059         assemblies array.
6060         
6061         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Avoid calling
6062         runtime functions while holding the domain assemblies lock.
6063
6064 2008-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
6065
6066         * verify.c: Reapplied the last bit of the reverted changes.
6067
6068 2008-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
6069
6070         * verify.c: Reapplied more of the reverted changes.
6071
6072 2008-06-09  Martin Baulig  <martin@ximian.com>
6073
6074         * debug-mono-symfile.c (load_symfile): Check the major version
6075         first; if it's wrong, don't print the minor version in the error message.
6076
6077 2008-06-09  Zoltan Varga  <vargaz@gmail.com>
6078
6079         * appdomain.c (set_domain_search_path): Make this use the domain assemblies
6080         lock instead of the domain lock to avoid deadlocks, since the thread might
6081         already hold the loader lock.
6082
6083         * threads.c (start_wrapper): Call mono_monitor_init_tls ().
6084         (mono_thread_attach): Ditto.
6085
6086         * monitor.c: Use a TLS variable for holding the current thread id instead
6087         of calling pthread_self ().
6088         (mono_monitor_init_tls): New internal function to initialize the TLS
6089         variable.
6090         (mono_monitor_try_enter_internal): Put the owner == id check after the
6091         owner == 0 check.
6092
6093         * object-internals.h (_G_BOOLEAN_EXPR): Redefine this glib macro to avoid
6094         missed optimizations when using gcc-4.3.
6095
6096 2008-06-08 Rodrigo Kumpera  <rkumpera@novell.com>
6097
6098         * reflection.c (mono_dynamic_image_free): Free the memory
6099         used by MonoGenericParam in MonoDynamicImage::gen_param.
6100
6101         * reflection.c (mono_reflection_setup_generic_class): Allocate
6102         container from mempool.
6103
6104         * reflection.c (mono_reflection_initialize_generic_parameter): Allocate
6105         container from mempool.
6106
6107 2008-06-07  Zoltan Varga  <vargaz@gmail.com>
6108
6109         * threads.c (mono_set_pending_exception): New internal function to set the
6110         pending exception of the current thread.
6111         (mono_thread_get_and_clear_pending_exception): Check for 
6112         thread->pending_exception as well.
6113
6114         * object-internals.h (struct _MonoThread): Add 'pending_exception' field.
6115
6116         * boehm-gc.c (mono_gc_base_init): Set GC_no_dls before calling GC_init () since
6117         it can trigger a collection.
6118
6119 2008-06-06  Martin Baulig  <martin@ximian.com>
6120
6121         Merged the `debugger-kahalo' branch.
6122
6123         * mono-debug.h
6124         (MONO_DEBUGGER_VERSION): Bumped to 72.
6125
6126         * debug-mono-symfile.h
6127         (MonoSymbolFileMethodIndexEntry): Removed.
6128         (MonoSymbolFileMethodEntry): New public typedef.
6129         (MonoSymbolFileOffsetTable): Added `_is_aspx_source'.
6130         (MonoSymbolFileSourceEntry): Remove everything except `index' and
6131         `data_offset'.
6132         (MonoSymbolFileMethodEntry): Removed.
6133         (MonoSymbolFileLexicalBlockEntry): Removed.
6134         (MonoSymbolFileLineNumberEntry): Removed.
6135         (MonoDebugLexicalBlockEntry): Removed.
6136         (MonoDebugMethodInfo): Replaced `entry' by `guint32 entry_offset';
6137         removed `num_il_offsets' and `il_offsets'.
6138         (MonoSymbolFile): Replace `version' with `major_version' and
6139         `minor_version'.
6140         (MONO_SYMBOL_FILE_VERSION): Replace with
6141         `MONO_SYMBOL_FILE_MAJOR_VERSION' and
6142         `MONO_SYMBOL_FILE_MINOR_VERSION'.
6143
6144         * debug-mono-symfile.c
6145         (mono_debug_symfile_lookup_location): Add support for the new line
6146         number table format.
6147
6148 2008-06-07 Rodrigo Kumpera  <rkumpera@novell.com>
6149
6150         * metadata.c (free_generic_class): Release the inflated
6151         MonoClass of dynamic generic classes if it's not a generic
6152         type definition.
6153
6154 2008-06-07 Rodrigo Kumpera  <rkumpera@novell.com>
6155
6156         * verify.c: Reapplied more of the reverted changes.
6157
6158 2008-06-07 Rodrigo Kumpera  <rkumpera@novell.com>
6159
6160         * reflection.c (lookup_custom_attr): Clean the cached flag or
6161         nobody will free it. Fixes a memleak in MonoCustomAttrs::IsDefinedInternal
6162         for SRE types.
6163
6164 2008-06-07 Rodrigo Kumpera  <rkumpera@novell.com>
6165
6166         * verify.c: Reapplied a small part of the reverted changes.
6167
6168 2008-06-07  Zoltan Varga  <vargaz@gmail.com>
6169
6170         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6171
6172         * monitor.c (mono_monitor_try_enter_internal): Add NULL check which was 
6173         previously in managed code.
6174         (mono_monitor_exit): Ditto.
6175         (ves_icall_System_Threading_Monitor_Monitor_exit): Removed, not needed anymore.
6176
6177         * icall-def.h: Rename the Enter/Exit icalls to simply Enter/Exit to match
6178         the managed definition.
6179
6180 2008-06-06 Rodrigo Kumpera  <rkumpera@novell.com>
6181
6182         * verify.c: Revert changes to see if it helps with weird buildbot crashes.
6183
6184 2008-06-06  Zoltan Varga  <vargaz@gmail.com>
6185
6186         * monitor.c: Redefine GetCurrentThreadId () with a macro on !win32.
6187         
6188         * monitor.c: Add some micro optimizations.
6189
6190         * icall.c (type_from_typename): Handle 'bool'.
6191
6192 2008-06-06 Rodrigo Kumpera  <rkumpera@novell.com>
6193
6194         * verify.c: Implement constructor verification per P III 1.8.1.4.
6195         Fixes #396716.
6196
6197 2008-06-06  Zoltan Varga  <vargaz@gmail.com>
6198
6199         * assembly.c (mono_assembly_loaded_full): Avoid calling the search hooks while
6200         holding the assemblies lock here too.
6201
6202 2008-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
6203
6204         * verify.c: Kill stack_top function.
6205
6206 2008-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
6207
6208         * verify.c: Kill stack_get function.
6209
6210 2008-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
6211
6212         * verify.c (mono_method_verify): Last change broke the build. Fixed.
6213
6214 2008-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
6215
6216         * verify.c (verify_type_compatibility_full): Make SZARRAY checks
6217         more reliable.
6218
6219         * verify.c (mono_method_verify): Inflate params and locals to avoid
6220         mismatch when checking for compatibility.
6221
6222 2008-06-05  Jonathan Chambers  <joncham@gmail.com>
6223
6224         * metadata.c (mono_string_from_bstr): Fix BSTR marshalling.
6225         Length prefix should be size in bytes. Fix bug #339530.
6226         
6227         * metadata.c (mono_string_to_bstr): Fix BSTR marshalling.
6228         Length prefix should be size in bytes. Fix bug #339530.
6229
6230         Code is contributed under MIT/X11 license.
6231
6232 2008-06-05  Bill Holmes <billholmes54@gmail.com>
6233
6234         * decimal.c:  Adding MSVC implementation to my_g_bit_nth_msf.
6235
6236         Contributed under MIT/X11 license.
6237
6238 2008-06-05  Martin Baulig  <martin@ximian.com>
6239
6240         * mono-debug-debugger.c
6241         (mono_debugger_check_breakpoints): Reflect latest runtime changes.
6242
6243 2008-06-05  Zoltan Varga  <vargaz@gmail.com>
6244
6245         * assembly.c (mono_assembly_load_from_full): Avoid calling the search hooks
6246         while holding the assemblies lock to prevent deadlocks. Handle the case
6247         where the search hook returns NULL but the assembly was still loaded.
6248         Fixes #323696.
6249
6250         * appdomain.c (set_domain_search_path): Acquire the domain lock since we
6251         modify domain state.
6252
6253 2008-06-05  Andreas Färber  <andreas.faerber@web.de>
6254
6255         * boehm-gc.c: Add DTrace probes gc-{begin,end}.
6256         * Makefile.am (pedump_LDADD): Post-process object files and
6257         add dtrace-generated object file, if necessary.
6258
6259         Code is contributed under MIT/X11 license.
6260
6261 2008-06-04 Rodrigo Kumpera  <rkumpera@novell.com>
6262
6263         * reflection.c (mono_dynamic_image_free): Free MonoDynamicImage::public_key.
6264
6265 2008-06-04 Rodrigo Kumpera  <rkumpera@novell.com>
6266
6267         * class.c (mono_type_get_full): Add a work-around for generic type definitions.
6268
6269 2008-06-04  Mark Probst  <mark.probst@gmail.com>
6270
6271         * threads.c: Try to free everything from the delayed free table
6272         when shutting down threads, and set the variable to NULL after the
6273         table is freed so that calling
6274         mono_thread_hazardous_try_free_all() when shutting down the root
6275         domain doesn't crash.
6276
6277 2008-06-04 Rodrigo Kumpera  <rkumpera@novell.com>
6278
6279         * class.c (mono_type_retrieve_from_typespec): Add an argument to inform
6280         the caller if resulting type was inflated.
6281
6282         * class.c (mono_class_create_from_typespec): Free the MonoType if it
6283         was inflated.
6284
6285         * class.c (mono_type_get_full): Free the MonoType if it was inflated.
6286
6287
6288 2008-06-04  Zoltan Varga  <vargaz@gmail.com>
6289
6290         * decimal.c (rescale128): Rework the code a bit so it no longer crashes the
6291         class library tests.
6292
6293         * icall.c (ves_icall_InternalInvoke): Applied patch from Andy Hume 
6294         (andyhume32@yahoo.co.uk). Add more useful exception messages. Fixes
6295         #396989.
6296
6297 2008-06-04  Mark Probst  <mark.probst@gmail.com>
6298
6299         * domain.c, domain-internals.h: The JIT infos are now freed by the
6300         JIT info table code.  They are freed immediately if there only a
6301         single JIT info table in circulation.  If there is more, the free
6302         is delayed via a queue.
6303
6304         * threads.c, threads-types.h: New hazard pointer function for
6305         freeing all freeable delayed items in one sitting.
6306
6307 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
6308
6309         * reflection.c (typebuilder_setup_fields): Use mempool for allocations.
6310
6311         * reflection.c (typebuilder_setup_properties): Same.
6312
6313         * reflection.c (typebuilder_setup_events): Same.
6314
6315 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
6316
6317         * reflection.c (mono_custom_attrs_from_builders): Receive a MonoMemPool
6318         and use it for allocating memory.
6319
6320         * reflection.c (mono_marshal_spec_from_builder): Same.
6321
6322         * reflection.c: Change code to use new signatures.
6323
6324         * metadata.c (mono_metadata_type_dup): Add a FIXME note.
6325
6326 2008-06-03  Zoltan Varga  <vargaz@gmail.com>
6327
6328         * decimal.c (rescale128): Put back one line which was accidently commented
6329         out.
6330         
6331         * decimal.c (rescale128): Disable the code added by the last patch, as it seems
6332         to cause crashes.
6333
6334 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
6335
6336         * reflection.c (mono_reflection_generic_class_initialize): Name must
6337         be always malloc'ed so we can free it later on. Do this for field, property
6338         and event.
6339
6340         * metadata.c (free_generic_class): Free field, property and event names.
6341
6342 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
6343
6344         * reflection.c (fieldbuilder_to_mono_class_field): Use mono_metadata_type_dup
6345         instead of g_memdup.
6346
6347         * reflection.c (typebuilder_setup_fields): Same.
6348
6349 2008-06-03  Zoltan Varga  <vargaz@gmail.com>
6350
6351         * decimal.c (rescale128): Optimize this function a bit more.
6352
6353 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
6354
6355         * metadata.c (free_generic_class): Release some memory from
6356         SRE generic classes.
6357
6358 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
6359
6360         * reflection.c (mono_image_get_generic_field_token): No reference
6361         to name is kept, free it.
6362
6363         * reflection.c (mono_reflection_generic_class_initialize): Free
6364         more memory of the inflated field.
6365
6366 2008-06-03  Zoltan Varga  <vargaz@gmail.com>
6367
6368         * decimal.c (mono_decimalDiv): Moved equality checks here from managed
6369         code.
6370
6371 2008-06-02 Rodrigo Kumpera  <rkumpera@novell.com>
6372
6373         * reflection.c (mono_dynamic_image_free): Release memory used by
6374         MonoDynamicImage::array_methods elements.
6375
6376         * reflection.c (assembly_add_win32_resources): Release memory after
6377         encoding.
6378
6379 2008-06-02  Zoltan Varga  <vargaz@gmail.com>
6380
6381         * decimal.c (log2_32): Use an optimized version for this function too.
6382         
6383         * decimal.c (log2_64): Fix this on 32 bit machines.
6384
6385 2008-06-02 Rodrigo Kumpera  <rkumpera@novell.com>
6386
6387         * class.c (mono_dup_array_type): Implement allocation using a mempool.
6388
6389         * class.c (mono_metadata_signature_deep_dup): Same.
6390
6391         * metadata.c (mono_metadata_signature_dup_full): Added, allow dup'ng with
6392         a mempool.
6393
6394         * metadata.c (mono_metadata_signature_dup): Delegate to the _full version.
6395
6396         * metadata.c (mono_metadata_type_dup): Remove asserts and FIXME.
6397
6398         * metadata-internals.h: Added mono_metadata_signature_dup_full.
6399
6400         * class-internals.h: Update signatures to take a MonoMemPool.
6401
6402 2008-06-02  Dick Porter  <dick@ximian.com>
6403
6404         * icall.c (ves_icall_System_ComponentModel_Win32Exception_W32ErrorMessage): 
6405         * icall-def.h: Add
6406         System.ComponentModel.Win32Exception.W32ErrorMessage, using the
6407         FormatMessage API to get the error text.  Fixes bug 321827.
6408
6409 2008-06-02  Zoltan Varga  <vargaz@gmail.com>
6410
6411         * decimal.c: Add some micro optimizations to make decimal operations faster.
6412
6413 2008-06-01 Rodrigo Kumpera  <rkumpera@novell.com>
6414
6415         * reflection.c (method_encode_clauses): Take a mempool
6416         as parameter and use it to allocate the clause array.
6417
6418         * reflection.c (mono_image_get_field_on_inst_token): Free
6419         the inflated type after encoding it.
6420
6421         * reflection.c (mono_dynamic_image_free): Free each element
6422         of MonoDynamicImage::gen_params.
6423
6424         * reflection.c (reflection_methodbuilder_to_mono_method):
6425         Allocate the generic param array from the mempool.
6426         Allocate signature params from the mempool.
6427
6428         * reflection.c (mono_reflection_generic_class_initialize):
6429         Free inflated fields after been used.
6430
6431 2008-05-30 Rodrigo Kumpera  <rkumpera@novell.com>
6432
6433         * icall.c: Reapply the memory leak fixes as they no
6434         longer make mono crash.
6435
6436 2008-05-30 Rodrigo Kumpera  <rkumpera@novell.com>
6437
6438         * reflection.c (mono_type_get_object): Don't store the suplied
6439         MonoType with type_hash. A caller which pass a type that
6440         was mono_metadata_type_dup'ed cannot free it reliably, as type_hash
6441         might end with a pointer to freed memory.
6442         The solution is to use byval_arg or this_arg from the associated
6443         MonoClass of the supplied type.
6444
6445 2008-05-29  Zoltan Varga  <vargaz@gmail.com>
6446
6447         * icall.c: Revert the rest of the last change as it breaks the build too.
6448
6449 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
6450
6451         * icall.c: Revert a leak fix as it's breaking the build.
6452
6453 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
6454
6455         * appdomain.c (mono_make_shadow_copy): Fix another leak of dir_name.
6456
6457 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
6458
6459         * appdomain.c (mono_make_shadow_copy): We leaked dir_name.
6460
6461 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
6462
6463         * icall.c: Fix some memory leaks.
6464
6465 2008-05-29  Dick Porter  <dick@ximian.com>
6466
6467         * threadpool.c (mono_thread_pool_remove_socket): Always remove the
6468         async socket operations from the pending list when a socket
6469         closes.  Leaving it until the threadpool services the event
6470         exposes a race condition when a socket descriptor is reused.
6471         Fixes bug 377589.
6472
6473 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
6474
6475         * object.c: Fix negative index check for array alocation.
6476
6477 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
6478
6479         * icall.c, marshal.c: Delegate wrappers should skip visibility.
6480         This check is performed by the verifier for IL created delegates
6481         and by Delegate::CreateDelegate for programatically created ones.
6482         Fixes #372406.
6483
6484 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
6485
6486         * sockey-io.c (ves_icall_System_Net_Sockets_Socket_Select_internal):
6487         Fix code to use mono_array_size_t instead of int.
6488
6489         Based on patch by Luis F. Ortiz.
6490         Contributed under X11 license.
6491         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
6492
6493 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
6494
6495         * icall.c: Added ves_icall_System_Array_GetLongLength and
6496         ves_icall_System_Array_CreateInstanceImpl64. Both allow handling big
6497         arrays.
6498
6499         * icall.h: Export both new functions.
6500
6501         Based on patch by Luis F. Ortiz.
6502         Contributed under X11 license.
6503         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
6504
6505 2008-05-28  Martin Baulig  <martin@ximian.com>
6506
6507         The debugger now requires exactly r103463.
6508
6509         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 71.
6510         This version is not supported by the debugger, wait for 72.
6511
6512 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
6513
6514         * object.h: Changed array related functions to use
6515         mono_array_size_t instead of guint32. Forgot to commit this file.
6516
6517         Patch by Luis F. Ortiz.
6518         Contributed under X11 license.
6519         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
6520
6521
6522 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
6523
6524         * object.h: Don't use G_MAXINT32 or G_MAXUINT32 as old glibs
6525         don't define it. Use the number literal instead.
6526
6527 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
6528
6529         * icall.c: Changed array related functions to use
6530         mono_array_size_t instead of guint32.
6531
6532         * icall.c (ves_icall_System_Array_GetLength): Check for length
6533         overflow under MONO_BIG_ARRAYS.
6534
6535         Based on patch by Luis F. Ortiz.
6536         Contributed under X11 license.
6537         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
6538
6539 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
6540
6541         * object.c: Add 64bits bounds check for arrays under MONO_BIG_ARRAYS.
6542
6543         Based on patch by Luis F. Ortiz.
6544         Contributed under X11 license.
6545         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
6546
6547 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
6548
6549         * object.c, object.h: Changed array related functions to use
6550         mono_array_size_t instead of guint32.
6551
6552         Patch by Luis F. Ortiz.
6553         Contributed under X11 license.
6554         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
6555
6556 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
6557
6558         * object.h: Introduced mono_array_size_t typedef. This must be used
6559         in all places an array length is expected. This is 64bits wide if
6560         MONO_BIG_ARRAYS is enabled.
6561
6562         Patch by Luis F. Ortiz.
6563         Contributed under X11 license.
6564         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
6565
6566 2008-05-27  Zoltan Varga  <vargaz@gmail.com>
6567
6568         * security-manager.c class.c: Set the class exception info by calling
6569         mono_class_set_failure ().
6570
6571         * class.c (mono_class_get_exception_data): New accessor function.
6572         (mono_class_set_failure): Store exception_data in the property hash.
6573
6574         * class-internals.h (struct _MonoClass): Store 'exception_data' outside
6575         the struct as a property.
6576
6577         * loader.c (mono_get_method_full): Store the lookup result for method
6578         tokens in method_cache, the others in methodref_cache to decrease the memory
6579         usage of hash tables.
6580
6581         * image.c (mono_image_close): Destroy method_cache and methodref_cache.
6582         (mono_image_init): method_cache is lazy inited now.
6583
6584         * metadata-internals.h (struct _MonoImage): Change method_cache to
6585         a MonoValueHashTable, add a separate methodref_cache.
6586
6587 2008-05-27  Eyal Alaluf <eyala@mainsoft.com>
6588
6589         * number-formatter.h: Fix tables to avoid arithemtic overflow in
6590           Double.ToString as exposed by Bug #383531.
6591
6592 2008-05-26  Zoltan Varga  <vargaz@gmail.com>
6593
6594         * number-formatter.h: Make some tables static.
6595
6596         * class.c (mono_method_set_generic_container): New accessor function.
6597         (mono_method_get_generic_container): Ditto.
6598
6599         * class-internals.h (struct _MonoMethod): Remove rarely used 
6600         'generic_container' field, store it in the property hash instead. Add 
6601         'is_generic' boolean field instead.
6602
6603         * image.c (mono_image_init): Initialize property_hash.
6604         (mono_image_close): Destroy property_hash.
6605
6606         * metadata-internals.h (struct _MonoImage): Add 'property_hash' hash table to
6607         hold rarely used fields of runtime structures belonging to this image.
6608
6609         * class.c loader.c verify.c icall.c reflection.c: Use the new accessor functions
6610         to get/set method->generic_container.
6611
6612         * loader.c (mono_get_method_from_token): Avoid loading the method header for
6613         generic methods.
6614
6615 2008-05-25  Zoltan Varga  <vargaz@gmail.com>
6616
6617         * class.c (mono_class_inflate_generic_method_full): Don't increase
6618         mono_stats.inflated_method_count for methods found in the cache.
6619
6620         * threads.c (mono_thread_request_interruption): Add a comment about 
6621         QueueUserAPC ().
6622
6623 2008-05-24  Zoltan Varga  <vargaz@gmail.com>
6624
6625         * class.c (setup_interface_offsets): Use sizeof (guint16) when allocating the
6626         interface_offsets_packed table.
6627         
6628         * class.c (mono_class_init): Remove some dead code.
6629
6630         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Call
6631         mono_class_setup_vtable () when CAS is active to detect security problems.
6632
6633 2008-05-23 Rodrigo Kumpera  <rkumpera@novell.com>
6634
6635         * verify.c (mono_delegate_type_equal): Handle VAR, MVAR and GENERICINST.
6636
6637         * verify.c (mono_delegate_signature_equal): Don't compar number of generic
6638         parameters as it's irrelevant for delegate checking.
6639
6640 2008-05-23  Zoltan Varga  <vargaz@gmail.com>
6641
6642         * class-internals.h class.c: Correct the name of the 'mono_no_setup_vtable_in_class_init' variable.
6643
6644         * class.c (mono_class_init): Control the creation of a generic vtable using
6645         a global which is true by default, but set to false by the runtime startup code.
6646         
6647         * class.c (mono_class_init): Avoid constructing a generic vtable in most cases.
6648         Disabled for now since it breaks the embedding API.
6649         Move the setup of class->methods for arrays to mono_class_setup_methods ().
6650         (mono_class_setup_methods): Add a memory barrier.
6651
6652         * object.c (mono_class_create_runtime_vtable): Add code to handle the case
6653         when mono_class_init () doesn't compute the generic vtable.
6654         
6655 2008-05-23  Massimiliano Mantione  <massi@ximian.com>
6656         * profiler.c: Added mono_profiler_install_statistical_call_chain,
6657         mono_profiler_stat_get_call_chain_depth and mono_profiler_stat_call_chain
6658         to support call chains (backtrace) in the stat profiler.
6659         * profiler.c, profiler-private.h: Likewise.
6660
6661 2008-05-22  Mark Probst  <mark.probst@gmail.com>
6662
6663         * generic-sharing.c: Init generic class when a method of it is
6664         requested via a runtime generic context.
6665
6666 2008-05-22  Zoltan Varga  <vargaz@gmail.com>
6667
6668         * class.c (mono_class_init): Add a comment about trying to avoid calling this.
6669
6670         * reflection.c (mono_type_get_object): Add a FIXME.
6671
6672         * loader.c (find_method_in_class): Use mono_class_get_method_by_index ().
6673
6674         * class.c (mono_class_get_method_by_index): New helper function, returning an
6675         entry in the class->methods array.
6676
6677 2008-05-21  Zoltan Varga  <vargaz@gmail.com>
6678
6679         * class.c (mono_class_init): Only do the array optimization for szarrays. 
6680         Avoid creating a generic vtable for generic instances as well.
6681         (mono_class_get_method_from_name_flags): Don't search in the metadata for
6682         generic instances.
6683
6684 2008-05-21 Rodrigo Kumpera  <rkumpera@novell.com>
6685
6686         * loader.c (mono_get_method_constrained): Inflate the signature
6687         with class context. Fix #325283.
6688
6689 2008-05-21  Zoltan Varga  <vargaz@gmail.com>
6690
6691         * object.c (mono_class_create_runtime_vtable): Add a comment.
6692
6693         * class.c (get_implicit_generic_array_interfaces): Call mono_class_init ()
6694         where needed.
6695         (setup_interface_offsets): Handle the case when this is called twice for arrays.
6696         (mono_class_setup_vtable_general): Add an assert.
6697         (mono_class_init): Avoid creating a generic vtable for arrays.
6698
6699         * class.c (mono_generic_class_get_class): Don't call setup_interface_offsets ()
6700         here, let mono_class_init () do that.
6701
6702         * class.c (mono_class_init): Avoid calling mono_class_setup_methods () for
6703         interfaces in mscorlib.
6704
6705         * class.c (mono_class_setup_vtable): Avoid calling setup_methods () for
6706         interfaces. Add some comments.
6707         (mono_class_init): Call mono_class_setup_methods () here since it is no
6708         longer called by mono_class_setup_vtable ().
6709
6710         * object.c (mono_class_proxy_vtable): Null out entries in pvt->vtable which are
6711         not set in class->vtable.
6712         (mono_class_create_runtime_vtable): Reenable the disabled code.
6713
6714         * object.c (mono_class_create_runtime_vtable): Disable the last change for
6715         now as it causes some test failures.
6716
6717         * object.c (mono_class_create_runtime_vtable): Avoid creating a generic vtable
6718         if using the vtable trampoline. Also remove some strange code which put the
6719         generic methods themselves into the vtable slots. Remove the AOT init_vtable
6720         stuff as it is no longer needed.
6721
6722 2008-05-19 Rodrigo Kumpera  <rkumpera@novell.com>
6723
6724         * pedump.c: Give make --verify all option check code as well.
6725         Using --verify code won't check for metadata now.
6726
6727 2008-05-19  Martin Baulig  <martin@ximian.com>
6728
6729         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 70.
6730
6731         * mono-debug.c
6732         (_mono_debug_using_mono_debugger): New global variable; it's set
6733         directly by the debugger, so mono_debug_using_mono_debugger() also
6734         works after attaching.
6735
6736 2008-05-18 Rodrigo Kumpera  <rkumpera@novell.com>
6737
6738         * object.c (mono_class_create_runtime_vtable): Use memory barriers
6739         as we do double checked locking on MonoClass::runtime_info and
6740         MonoClassRuntimeInfo::domain_vtables.
6741
6742 2008-05-18  Zoltan Varga  <vargaz@gmail.com>
6743
6744         * debug-helpers.c (print_field_value): Fix a warning.
6745
6746 2008-05-16  Zoltan Varga  <vargaz@gmail.com>
6747
6748         * object.c (mono_object_get_virtual_method): Fix a crash if method->slot is not
6749         set in the AOT case.
6750
6751 2008-05-16 Rodrigo Kumpera  <rkumpera@novell.com>
6752
6753         * class.c (mono_class_setup_vtable_general): Use memory barriers
6754         as we do double checked locking on MonoClass::vtable.
6755
6756 2008-05-16 Rodrigo Kumpera  <rkumpera@novell.com>
6757
6758         * reflection.c (resolve_object): Inflate only if the generic context
6759         is not null. Fixes #389886.
6760
6761 2008-05-15  Jonathan Chambers  <joncham@gmail.com>
6762
6763         * metadata.c (emit_marshal_string): Free return strings using mono_marshal_free
6764         instead of g_free.
6765
6766         Code is contributed under MIT/X11 license.
6767
6768 2008-05-14 Rodrigo Kumpera  <rkumpera@novell.com>
6769
6770         * class.c: Revert unrelated change.
6771
6772 2008-05-14 Rodrigo Kumpera  <rkumpera@novell.com>
6773
6774         * verify.c (check_is_valid_type_for_field_ops): Type on stack can be
6775         a generic instantiation, use mono_class_from_mono_type instead of playing
6776         with MonoType directly.
6777
6778 2008-05-14 Rodrigo Kumpera  <rkumpera@novell.com>
6779
6780         * class.c: Added mono_class_has_parent_and_ignore_generics. Visibility
6781         checks must ignore generic instantiations, so mono_class_has_parent is not
6782         suitable. Fixes #390128.
6783
6784 2008-05-14  Zoltan Varga  <vargaz@gmail.com>
6785
6786         * reflection.c (mono_image_create_token): Add a 'register_token' argument, and use
6787         it to avoid registering tokens during metadata generation. Fixes #390023.
6788
6789 2008-05-14  Kornél Pál  <kornelpal@gmail.com>
6790
6791         * coree.c: Rename dwOldProtect to OldProtect that makes naming convention
6792         consistent.
6793
6794         Contributed under MIT/X11 license.
6795
6796 2008-05-14  Kornél Pál  <kornelpal@gmail.com>
6797
6798         * domain.c (mono_init_internal): Enable LoadLibrary support. Load EXE image
6799         even when get_runtimes_from_exe didn't load it that allows mono_fixup_exe_image
6800         to fixup the EXE image.
6801         (mono_cleanup): Use mono_close_exe_image.
6802         (mono_close_exe_image): New function.
6803         * image.c: Include "marshal.h".
6804         (mono_image_open_from_module_handle): Add ref_count argument. Return the image.
6805         (mono_image_open_full, mono_image_close): Fix LoadLibrary/FreeLibrary reference
6806         counting when the image is loaded outside of mono_image_open_full. Set status
6807         based on GetLastError.
6808         * coree.c: Include required headers. Add init_from_coree.
6809         (_CorDllMain): Support fix in mono_image_open_full, mono_image_close. Call
6810         mono_assembly_open only when the image has vtfixups. Set init_from_coree.
6811         (_CorExeMain): Set init_from_coree.
6812         (CorExitProcess): Only call ExitProcess for now.
6813         (CorBindToRuntimeEx): New stub implementation.
6814         (CorBindToRuntime): New function.
6815         (MonoFixupCorEE): Fixup CorBindToRuntime and CorBindToRuntimeEx.
6816         (MonoFixupExe): ILONLY executables require no fixups.
6817         (mono_set_act_ctx): New function to set activation context.
6818         (mono_load_coree): Use init_from_coree. Call mono_set_act_ctx.  
6819         * coree.h: Move STATUS_SUCCESS and STATUS_INVALID_IMAGE_FORMAT to header.
6820         Declare mono_module_handle, coree_module_handle, mono_get_module_file_name,
6821         mono_load_coree, mono_fixup_exe_image and mono_image_open_from_module_handle
6822         as MONO_INTERNAL.
6823         * domain-internals.h: Add mono_close_exe_image.
6824
6825         Contributed under MIT/X11 license.
6826
6827 2008-05-13 Rodrigo Kumpera  <rkumpera@novell.com>
6828
6829         * metadata.c (mono_metadata_compute_size): Correctly calculate field
6830         size for generic param and event tables. Fixes #388977.
6831
6832 2008-05-13  Zoltan Varga  <vargaz@gmail.com>
6833
6834         * loader.c (mono_method_signature): Use memory barriers because of the double
6835         checked locking pattern.
6836
6837         * threads.c (remove_and_abort_threads): Stop and wait for threads which are
6838         aborting or aborted as well. Fixes #376391.
6839         
6840         * threads.c (mono_thread_execute_interruption): Avoid depending on no longer
6841         existing runtime state in the Suspend handler during shutdown.
6842
6843 2008-05-12  Zoltan Varga  <vargaz@gmail.com>
6844
6845         * threads.c (mono_thread_request_interruption): Add some FIXMEs.
6846
6847         * threads.c (mono_thread_suspend_all_other_threads): Add support for threads 
6848         which are starting up or shutting down.
6849
6850         * threads.c (mono_threads_set_shutting_down): Don't return a value since
6851         this function never returns if the runtime is already shutting down.
6852
6853         * icall.c (ves_icall_System_Environment_Exit): Update after 
6854         mono_threads_set_shutting_down () signature change.
6855         
6856 2008-05-09 Rodrigo Kumpera  <rkumpera@novell.com>
6857
6858         * class.c: Added can_access_instantiation to verify if the instantiation
6859         is visible. Fix access check for nested types as they returned TRUE
6860         before doing type and generic instantiation visibility checks.
6861
6862 2008-05-08 Rodrigo Kumpera  <rkumpera@novell.com>
6863
6864         * reflection.c (mono_reflection_create_generic_class): The created type
6865         must have a different container from its TypeBuilder. Otherwise they
6866         will end sharing generic arguments, which is wrong.
6867
6868         Due to the sharing, making a generic instance of the created type using
6869         the TypeBuider generic arguments resulted in the generic type definition
6870         been returned, which is wrong as well.
6871
6872         As a bonus the code was leaking the type_params array. This memory should
6873         be allocated from the image mempool.
6874
6875         This fixes bug #354047.
6876
6877 2008-05-08 Rodrigo Kumpera  <rkumpera@novell.com>
6878
6879         * metadata-internals.h: Move MONO_SECMAN_FLAG macros from mini/declsec.h
6880         to here         as they are now used in assembly.c new code.
6881         Added a skipverification flag to MonoAssembly.
6882         New internal function mono_assembly_has_skip_verification.
6883
6884         * assembly.c: New function mono_assembly_has_skip_verification. It checks
6885         if an assembly has a version 2.0 SkipVerification security attribute. Fixes
6886         part of #387274.
6887
6888 2008-05-07  Zoltan Varga  <vargaz@gmail.com>
6889
6890         * object.c (mono_object_get_virtual_method): Inflate the resulting method if
6891         needed. Fixes #387034.
6892
6893         * class.c (mono_class_inflate_generic_type): Avoid a crash if context is NULL.
6894
6895 2008-05-06  Miguel de Icaza  <miguel@novell.com>
6896
6897         * assembly.c (mono_assembly_load_reference): Prevent crash while
6898         disassembling Silverlight 2.0 executables while we still do not
6899         have GACed libraries.
6900
6901 2008-05-07  Zoltan Varga  <vargaz@gmail.com>
6902
6903         * reflection.c: Special case generic type definitions as well. Fixes #383444.
6904
6905 2008-05-06  Zoltan Varga  <vargaz@gmail.com>
6906
6907         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Fix handling
6908         of the dynamic case. Fixes #387404.
6909
6910 2008-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
6911
6912         *verify.c (mono_verifier_is_class_full_trust): If under
6913         verify_all and the verifier mode was not set, only
6914         gac and corlib types are fulltrust. This makes --verify-all
6915         usable to detect unverifiable code, which is the expected
6916         use case.
6917
6918 2008-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
6919
6920         * verify.h: Ops, commited the header with debug
6921         enabled.
6922
6923 2008-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
6924
6925         * verify.c (merge_stack): Use the new value on unverifiable
6926         stack merges.
6927
6928         * verify.c (verify_type_compatibility_full): Comparison
6929         of nullable types can't use mono_class_is_assignable_from.
6930
6931         * verify.c, verify.h: Added MONO_VERIFY_REPORT_ALL_ERRORS
6932         that makes all verification errors be reported.
6933
6934         * pedump.c: Pass MONO_VERIFY_REPORT_ALL_ERRORS to
6935         mono_method_verify.
6936
6937 2008-05-05  Robert Jordan  <robertj@gmx.net>
6938
6939         * marshal.c (mono_marshal_get_thunk_invoke_wrapper):
6940         support for value types. See #386415.
6941
6942         * object.c: comments.
6943
6944         Code is contributed under MIT/X11 license.
6945
6946 2008-05-05  Martin Baulig  <martin@ximian.com>
6947
6948         * debug-mono-symfile.h
6949         (MONO_SYMBOL_FILE_COMPATIBILITY_VERSION): Removed; dropped support
6950         for old pre-terrania symbol files.
6951
6952 2008-05-05  Andreas Färber  <andreas.faerber@web.de>
6953
6954         * mono-config.c: Add ppc64 architecture.
6955
6956         Code is contributed under MIT/X11 license.
6957
6958 2008-05-05  Andreas Färber  <andreas.faerber@web.de>
6959
6960         * object.c (mono_create_ftnptr, mono_get_addr_from_ftnptr):
6961           PPC64 uses function descriptors as well.
6962
6963         Code is contributed under MIT/X11 license.
6964
6965 2008-05-04  Zoltan Varga  <vargaz@gmail.com>
6966
6967         * object.c (compute_class_bitmap): Ignore literal static fields.
6968
6969         * sgen-gc.c (mono_gc_base_init): Print some help when the MONO_GC_DEBUG env
6970         var has an invalid format.
6971         (describe_ptr): Add some sanity checks for the vtable.
6972         (add_nursery_frag): Clear unused nursery fragments.
6973         (major_collection): Clear all remaining nursery fragments.
6974
6975 2008-05-03  Robert Jordan  <robertj@gmx.net>
6976
6977         * image.c, metadata-internals.h: add thunk_invoke_cache.
6978
6979         * marshal.c, marshal.h: implement
6980         mono_marshal_get_thunk_invoke_wrapper ().
6981
6982         * object.c, object.h: implement mono_method_get_unmanaged_thunk ().
6983
6984         Code is contributed under MIT/X11 license.
6985
6986 2008-05-02 Rodrigo Kumpera  <rkumpera@novell.com>
6987
6988         * verify.c (do_leave): Empty the stack.
6989
6990 2008-05-02 Rodrigo Kumpera  <rkumpera@novell.com>
6991
6992         * class.c (mono_class_is_assignable_from): Variance
6993         doesn't work between reference and value types. For example,
6994         given type C<T+>, C<int32> is not assignable to C<object>.
6995         Break the argument checking loop on first error. 
6996
6997 2008-05-02  Atsushi Enomoto  <atsushi@ximian.com>
6998
6999         * icall.c : base64_to_byte_array() needs some more strict
7000           check for sequence of '=' characters. Patch by Santa
7001           Marta (http://deee.g.hatena.ne.jp/santamarta).
7002
7003           Contributed under MIT/X11 license.
7004           (see http://www.lingr.com/room/mono-jp/archives/2008/04/20)
7005
7006 2008-05-02  Jonathan Chambers  <joncham@gmail.com>
7007
7008         * domain.c: Disable LoadLibrary support to fix Win32 build.
7009
7010         Code is contributed under MIT/X11 license.
7011
7012 2008-05-02  Zoltan Varga  <vargaz@gmail.com>
7013
7014         * sgen-gc.c: Add support for clearing nursery memory when a tlab is allocated,
7015         to help with cache behaviour.
7016
7017 2008-05-01  Miguel de Icaza  <miguel@novell.com>
7018
7019         * appdomain.c (mono_domain_from_appdomain): Add new accessor
7020         method. 
7021
7022 2008-05-01  Zoltan Varga  <vargaz@gmail.com>
7023
7024         * sgen-gc.c: Implement thread-local allocation and a managed allocation routine.
7025
7026 2008-05-01  Dick Porter  <dick@ximian.com>
7027
7028         * process.c (process_get_fileversion): Only pass 16 bits of
7029         language ID to VerLanguageName.  Fixes bug 381204.
7030
7031 2008-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
7032
7033         * verify.c (mono_method_verify): Fix the comparison
7034         operator for code bounds check.
7035
7036 2008-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
7037
7038         * verify.c (mono_method_verify): Check the bounds of
7039         all access of the code array.
7040
7041 2008-04-29  Kornél Pál  <kornelpal@gmail.com>
7042
7043         * appdomain.c: Use HAVE_SYS_UTIME_H that fixes MSVC build.
7044
7045 2008-04-28  Zoltan Varga  <vargaz@gmail.com>
7046
7047         * image.c (mono_image_strong_name_position): Fix return value when the rva is
7048         not valid.
7049
7050 2008-04-28  Kornél Pál  <kornelpal@gmail.com>
7051
7052         * loader.c (mono_get_method_from_token, mono_method_signature): Add
7053         support for METHOD_IMPL_ATTRIBUTE_NATIVE.
7054         * domain.c (mono_init_internal): Load and fixup mscoree.dll on startup and
7055         fixup main EXE images when using mono.exe for mixed-mode assembly support.
7056         * domain-internals.h: Add MonoLoadFunc, mono_install_runtime_load and
7057         mono_runtime_load.
7058         * appdomain.c: Add mono_install_runtime_load, mono_runtime_load to support
7059         runtime initialization from metadata.
7060         * assembly.c: Remove obsolete ceGetModuleFileNameA.
7061         (mono_set_rootdir): Use mono_get_module_file_name.
7062         (mono_assembly_load_from_full): Call mono_image_fixup_vtable for module
7063         handles.
7064         * cil-coff.h: Add MonoVTableFixup. Update mono_cli_rva_image_map signature.
7065         * metadata-internals.h: Add is_module_handle to _MonoImage on Windows.
7066         * image.c (mono_cli_rva_image_map): Use MonoImage instead of
7067         MonoCLIImageInfo. Add support for module handles.
7068         (load_cli_header): Update mono_cli_rva_image_map signature.
7069         (load_metadata_ptrs): Update mono_cli_rva_image_map signature.
7070         (mono_image_strong_name_position): Use mono_cli_rva_image_map.
7071         (mono_image_rva_map): Add support for module handles.
7072         (mono_image_ensure_section_idx): Add support for module handles.
7073         (mono_image_close): Add support for module handles.
7074         (do_load_header): Add support for module handles.
7075         (mono_image_open_from_module_handle): New function for internal use.
7076         (mono_image_open_full): Load normal images using LoadLibrary on Windows.
7077         (mono_image_load_module): Call mono_image_fixup_vtable for module handles.
7078         (mono_image_load_file_for_image): Call mono_image_fixup_vtable for module
7079         handles.
7080         (mono_image_fixup_vtable): New function for mixed-mode assembly support.
7081         * image.h: Add mono_image_fixup_vtable.
7082         * coree.c: New file for mscoree.dll functions and mixed-mode assembly
7083         support.
7084         * coree.h: New file.
7085         * marshal.c (mono_marshal_get_native_wrapper): Throw exception for
7086         unsupported native code.
7087         (mono_marshal_set_callconv_from_modopt): New function splitted from
7088         mono_marshal_get_managed_wrapper.
7089         (mono_marshal_get_managed_wrapper): Use
7090         mono_marshal_set_callconv_from_modopt.
7091         (mono_marshal_get_vtfixup_ftnptr): New function for mixed-mode assembly support.
7092         * marshal.h: Add mono_marshal_get_vtfixup_ftnptr.
7093         * gc.c (mono_gc_init): Don't wait for the finalizer thread on Windows because
7094         that results in a deadlock when the runtime is loaded in _CorDllMain.
7095         * Makefile.am: Add coree.c and coree.h.
7096
7097         Contributed under MIT/X11 license.
7098
7099 2008-04-28  Mark Probst  <mark.probst@gmail.com>
7100
7101         * generic-sharing.c: Search for type arguments in array element
7102         types as well.
7103
7104 2008-04-28  Mark Probst  <mark.probst@gmail.com>
7105
7106         * class-internals.h, generic-sharing.c: New, small runtime generic context.
7107
7108         * metadata-internals.h, domain.c, image.c: Less bookkeeping is required for the new RGCTX.
7109
7110         * object.c: Don't setup the RGCTX when the vtable is created,
7111         because we're setting it up lazily now.
7112
7113 2008-04-26  Zoltan Varga  <vargaz@gmail.com>
7114
7115         * sgen-gc.c: Make the 'desc' variables an mword instead of a guint32 to fix 
7116         64 bit support.
7117
7118 2008-04-24 Rodrigo Kumpera  <rkumpera@novell.com>
7119
7120         * verify.c (verify_class_for_overlapping_reference_fields): 
7121         If class is under fulltrust allow reference types to overllap
7122         if they have the same RVA.
7123
7124 2008-04-24 Rodrigo Kumpera  <rkumpera@novell.com>
7125
7126         * pedump.c: Added new flag valid-only, that makes the verifier
7127         behaves just like --security=validil. It won't fail type load
7128         due to unverifiable restrictions.
7129
7130 2008-04-23 Rodrigo Kumpera  <rkumpera@novell.com>
7131
7132         * class-internals.h (struct MonoMethod): Added a verification_success
7133         field to cache verifier executions. Reduced MonoMethod:slot size by
7134         one bit.
7135
7136 2008-04-23  Zoltan Varga  <vargaz@gmail.com>
7137
7138         * sgen-gc.c (OBJ_RUN_LEN_SIZE): Make this and other macros take a 'desc' argument
7139         instead of a 'vt' argument to save an indirection and to allow these to be used
7140         for valuetypes.
7141         (scan_vtype): New helper function to scan an area using a gc descriptor.
7142         (mono_gc_wbarrier_value_copy): Implement this.
7143         (handle_remset): Add support for REMSET_VTYPE.
7144         (find_in_remset_loc): Ditto.
7145         (mono_gc_base_init): Allow some debugging options to be controlled through the
7146         use of the MONO_GC_DEBUG env variable.
7147         (mono_gc_alloc_obj): Add support the 'collect-before-allocs' debug option.
7148         (collect_nursery): Add support for the 'check-at-minor-collection' debug option.
7149
7150 2008-04-23  Martin Baulig  <martin@ximian.com>
7151
7152         * domain.c (mono_domain_create): Move the call to
7153         mono_debug_domain_create() down, after allocating the domain id.
7154
7155 2008-04-23 Rodrigo Kumpera  <rkumpera@novell.com>
7156
7157         verify.c (verify_class_for_overlapping_reference_fields): Skip
7158         static fields while verifying for overlapping fields as they
7159         don't matter at all.
7160
7161 2008-04-23  Marek Habersack  <mhabersack@novell.com>
7162
7163         * domain-internals.h: added a declaration of
7164         mono_make_shadow_copy.
7165
7166         * assembly.c (mono_assembly_open_full): shadow copying of
7167         assemblies moved to here, so that all the assemblies within the
7168         application domain's private binary directories can be
7169         processed. Fixes bug #380546
7170
7171         * appdomain.c (mono_make_shadow_copy): make_shadow_copy renamed to
7172         mono_make_shadow_copy and made non-static. The decision whether
7173         to shadow-copy an assembly is made based on its location - it's
7174         copied if it's in one of the private application domain binary
7175         directories and its different to the target file in the shadow
7176         directory. Fixes bug #380546
7177
7178 2008-04-22  Zoltan Varga  <vargaz@gmail.com>
7179
7180         * reflection.c (fixup_method): Handle {Method|Constructor}OnTypeBuilderInst.
7181
7182         * object-internals.h: Add MonoReflection{Method|Constructor}OnTypeBuilderInst
7183         types.
7184
7185         * reflection.c (mono_image_create_token): Handle 
7186         Method/ConstructorOnTypeBuilderInst.
7187         (resolve_object): Ditto.
7188         (inflate_mono_method): Receive the inflated class instead of a MonoGenericClass
7189         so it can be called from resolve_object. Also handle the case when the inflated
7190         class already has its methods setup.
7191
7192 2008-04-21  Martin Baulig  <martin@ximian.com>
7193
7194         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 69.
7195
7196 2008-04-20  Geoff Norton  <gnorton@novell.com>
7197
7198         * icall.c: Fix the _NSGetEnviron define to prevent an impropoer
7199         pointer dereference.
7200
7201 2008-04-15  Marek Habersack  <mhabersack@novell.com>
7202
7203         * appdomain.c (try_load_from): if IOMAP is in effect, call the
7204         portability API to look up the assembly file. Fixes behavior in
7205         situations when the application has a bin/ directory, but the
7206         assembly search patch refers to Bin/ (and thus the requested file
7207         name is Bin/SomeLibrary.dll). Fixes bug #379888
7208
7209 2008-04-15 Rodrigo Kumpera  <rkumpera@novell.com>
7210
7211         verify.c (mono_type_is_generic_argument): Extracted this check
7212         from a dozen places to here.
7213
7214         verify.c: Fixed all issues related to boxing generic arguments
7215         and their constraints.
7216
7217 2008-04-14 Rodrigo Kumpera  <rkumpera@novell.com>
7218
7219         verify.c (mono_class_interface_implements_interface): Fix win32 build.
7220
7221 2008-04-14  Zoltan Varga  <vargaz@gmail.com>
7222
7223         * reflection.c (mono_custom_attrs_construct): Fix crash when the cattr type
7224         isn't finished yet. Fixes #363447.
7225
7226 2008-04-13  Zoltan Varga  <vargaz@gmail.com>
7227
7228         * class.c (mono_bounded_array_class_get): Fix the name of bounded array types.
7229         Fixes #346419.
7230
7231 2008-04-13  Jb Evain  <jbevain@novell.com>
7232
7233         * domain.c: update the 2.1 profile versions.
7234         Merged from the Moonlight 2 branch.
7235
7236 2008-04-12  Zoltan Varga  <vargaz@gmail.com>
7237
7238         * assembly.c (mono_assembly_load_from_full): Do the check for loading other
7239         mscorlibs for the non-refonly case as well.
7240
7241         * image.c (do_mono_image_load): Remove the mscorlib check, it is already done
7242         in mono_assembly_load_from_full (). Fixes #378924.
7243
7244 2008-04-11  Geoff Norton  <gnorton@novell.com>
7245
7246         * icall.c: The global extern environ doesn't exist on Mac.  We
7247         need to call NSGetEnviron instead.
7248
7249 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
7250
7251         verify.c: Add generic method constraint verification.
7252
7253 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
7254
7255         class.c (mono_class_inflate_generic_method_full): Add a long
7256         explanation to the is_mb_open hack. Remove the FIXME.
7257
7258 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
7259
7260         * verify.c (mono_method_verify): Mark all unknown opcodes
7261         as invalid. Mark jmp as unverifiable.
7262
7263 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
7264
7265         * verify.c: Add code to do type constraint verification on class instances.
7266
7267         * verify.c (mono_verifier_verify_class): Use the type constraint 
7268         verification code.
7269
7270 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
7271
7272         * class.c (mono_class_get_field_default_value): Don't pass cindex
7273         as hint to mono_metadata_get_constant_index. The local is not initialized
7274         and should contain garbage most of the time. This could only work
7275         with a lot of luck.
7276
7277 2008-04-09 Rodrigo Kumpera  <rkumpera@novell.com>
7278
7279         * tokentype.h: Add MONO_TOKEN_GENERIC_PARAM.
7280
7281 2008-04-09 Rodrigo Kumpera  <rkumpera@novell.com>
7282
7283         * class-internals.h: Add generic_param_token to MonoClass::sizes union.
7284
7285         * class.c (mono_class_from_generic_parameter): Save the token of the
7286         generic param in MonoClass::sizes.generic_param_token.
7287
7288         * reflection.c (mono_custom_attrs_from_class): If the class type is
7289         VAR or MVAR retrieve the attributes of the generic param.
7290
7291 2008-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
7292
7293         * class.c (mono_class_init): Do class verification if the verifier
7294         is enabled.
7295
7296 2008-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
7297
7298         * verify-internal.h: Added mono_verifier_verify_class.
7299
7300         * verify.c: Added mono_verifier_verify_class. It checks for
7301         classes with explicit layout that have overlapping reference fields.
7302
7303         * pedump.c: Init the verifier state prior to verification. Fixed
7304         command line arguments.
7305
7306 2008-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
7307
7308         * Makefile.am: Added verify-internals.h, hopefully fix the build.
7309
7310 2008-04-08  Zoltan Varga  <vargaz@gmail.com>
7311
7312         * verify-internals.h: Fix a warning.
7313
7314 2008-04-07 Rodrigo Kumpera  <rkumpera@novell.com>
7315
7316         * verify-internals.h: New header with the verifier configuration
7317         extracted from mini.c.
7318
7319         * verify.c: Implemented the new functions exported by verify-internals.h.
7320
7321 2008-04-07 Rodrigo Kumpera  <rkumpera@novell.com>
7322
7323         * verify.c: Add proper verification of ckfinite.
7324
7325 2008-04-04 Rodrigo Kumpera  <rkumpera@novell.com>
7326
7327         * verify.c (do_conversion): Improved error message to something
7328         more meanfull.
7329
7330         * verify.c (check_is_valid_type_for_field_ops): Fix to work
7331         with primitive types.
7332
7333 2008-04-04 Rodrigo Kumpera  <rkumpera@novell.com>
7334
7335         * verify.c: Added tail prefix checking. Marked icall
7336         as unverifible.
7337
7338 2008-04-04 Rodrigo Kumpera  <rkumpera@novell.com>
7339
7340         * verify.c: Fix the detection of branches to the middle
7341         of an instruction.
7342
7343 2008-04-03 Rodrigo Kumpera  <rkumpera@novell.com>
7344
7345         * verify.c: Implemented verification of volatile. and
7346         unaligned. prefix. Check if a type is valid after retrieving it.
7347
7348 2008-04-01  Dick Porter  <dick@ximian.com>
7349
7350         * process.c (process_get_fileversion): If there's no string block,
7351         set the file language to en_US.  Fixes the other new part of bug
7352         374600.
7353
7354 2008-03-29 Rodrigo Kumpera  <rkumpera@novell.com>
7355
7356         * class.c: New functions mono_method_can_access_field_full and
7357         mono_method_can_access_method_full. They perform type visibility
7358         and type site check.
7359
7360         * class-internal.h: Added exported functions.
7361
7362         * verify.c: Use new functions to implement proper visibility checks.
7363
7364 2008-03-29  Zoltan Varga  <vargaz@gmail.com>
7365
7366         * mono-config.h: Add missing G_BEGIN_DECLS/G_END_DECLS. Fixes #375188.
7367
7368 2008-03-28  Dick Porter  <dick@ximian.com>
7369
7370         * process.c (process_get_fileversion): Use the first language ID
7371         we see, rather than insisting on an invariant language.  Fixes bug
7372         374600.
7373
7374 2008-03-28  Zoltan Varga  <vargaz@gmail.com>
7375
7376         * reflection.c (calc_section_size): Use add_stream_zero to align the size of
7377         the streams to fix reading of invalid memory later.
7378
7379         * metadata.h (MonoType): Use 'MonoTypeEnum' instead of int for the 'type' field
7380         to ease debugging.
7381
7382 2008-03-26  Zoltan Varga  <vargaz@gmail.com>
7383
7384         * marshal.c (signature_dup): Use mono_metadata_signature_alloc ().
7385         (cominterop_method_signature): Ditto. Fix the size passed to memcpy.
7386
7387 2008-03-26  Massimiliano Mantione  <massi@ximian.com>
7388         * threads.h: Added MonoThreadManageCallback type and
7389         mono_thread_set_manage_callback prototype
7390         * object-internals.h: In _MonoThread, renamed unused6 to manage_callback
7391         (used to store the mono_thread_manage callback).
7392         * threads.c: Added mono_thread_set_manage_callback, and handle
7393         "MonoThread->manage_callback" in build_wait_tids.
7394
7395 2008-03-26  Dick Porter  <dick@ximian.com>
7396
7397         * process.c (process_get_fileversion): Set FileVersionInfo strings
7398         to Empty when the resource doesn't have the particular info.
7399         Fixes bug 355717.
7400
7401 2008-03-25 Rodrigo Kumpera  <rkumpera@novell.com>
7402
7403         * verify.c (mono_method_verify): Proper prefix validation.
7404
7405 2008-03-25  Zoltan Varga  <vargaz@gmail.com>
7406
7407         * icall.c (ves_icall_InternalInvoke): Return exceptions thrown by the icall
7408         itself in a separate argument instead of throwing them. Fixes #373448.
7409
7410         * appdomain.c: Bump corlib version.
7411
7412 2008-03-24 Rodrigo Kumpera  <rkumpera@novell.com>
7413
7414         * verify.c: Implemented readonly prefix and verify controled mutability pointers.
7415
7416 2008-03-20  Kornél Pál  <kornelpal@gmail.com>
7417
7418         * file-io.c, filewatcher.c, threadpool.c, threads.c: Removed Windows
7419         version macros.
7420
7421 2008-03-20  Mark Probst  <mark.probst@gmail.com>
7422
7423         * generic-sharing.c, class-internals.h: Code for putting
7424         reflection types into the runtime generic context.
7425
7426 2008-03-19 Rodrigo Kumpera  <rkumpera@novell.com>
7427
7428         * icall.c (ves_icall_get_method_info): Return correct values for the call convention.
7429         Fixes #340662. 
7430
7431
7432 2008-03-17 Rodrigo Kumpera  <rkumpera@novell.com>
7433
7434         * verify.c (VerifyContext): Added instruction prefix data to the struct.
7435
7436         * verify.c (is_compatible_boxed_valuetype): Don't check if the type is a valuetype, been boxed is enough.
7437
7438         * verify.c (do_invoke): Support constrained callvirt form. Grouped similar checks together.
7439
7440         * verify.c (do_cast): Let the result value keep the boxed status.
7441
7442         * verify.c (mono_method_verify): Add proper support for prefixed and implement contrained.
7443
7444 2008-03-17  Jb Evain  <jbevain@novell.com>
7445
7446         * reflection.c: when running on a 2.0 runtime, emit
7447         unconditionally the #~ header version as 2.0, and the
7448         CLI header version as 2.5, for symmetry's sake with csc.
7449
7450 2008-03-16  Zoltan Varga  <vargaz@gmail.com>
7451
7452         * class.c: Remove the unused cache_interface_offsets stuff.
7453
7454         * class.c loader.c domain.c verify.c metadata.c debug-helpers.c threadpool.c
7455         profiler.c: Fix warnings.
7456
7457 2008-03-16  Mark Probst  <mark.probst@gmail.com>
7458
7459         * generic-sharing.c, class-internals.h: Support for putting
7460         methods into the runtime generic context.
7461
7462 2008-03-16  Zoltan Varga  <vargaz@gmail.com>
7463
7464         * class.c (mono_class_setup_fields): Ignore calls made to this function for
7465         classes which are generic instances of not-yet finished typebuilders. Fixes
7466         #351172.
7467
7468         * reflection.c (fixup_method): Add support for FieldOnTypeBuilderInst.
7469
7470 2008-03-15  Zoltan Varga  <vargaz@gmail.com>
7471
7472         * metadata-internals.h (MonoDynamicImage): Add 'generic_def_objects' hash table.
7473
7474         * class-internals.h (MonoMethodInflated): Remove the rarely used reflection_info
7475         field, replace it with a hash table in MonoDynamicImage.
7476
7477         * reflection.c (inflate_mono_method): Access the generic definition object from
7478         image->generic_def_objects instead of imethod->reflection_info.
7479
7480         * reflection.c (mono_reflection_bind_generic_method_parameters): Ditto. 
7481
7482         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition): Ditto.
7483         
7484         * image.c (mono_image_close): Move the dynamic image freeing code to a separate
7485         function in reflection.c so it is easier to keep in sync with the dynamic image
7486         creation code.
7487
7488         * reflection.c (mono_dynamic_image_free): New internal function, extracted from
7489         mono_image_close ().
7490
7491 2008-03-15  Mark Probst  <mark.probst@gmail.com>
7492
7493         * class.c (mono_class_generic_sharing_enabled): Disable generic
7494         sharing for all architectures except AMD64 and x86 to fix build.
7495
7496 2008-03-14 Rodrigo Kumpera  <rkumpera@novell.com>
7497
7498         * verify.c: Use the generic definition MonoGenericContext when available.
7499         Remove code for checking generics instance compatibility in favor of
7500         mono_class_is_assignable_from.
7501
7502 2008-03-14  Mark Probst  <mark.probst@gmail.com>
7503
7504         * marshal.c, marshal.h, metadata-internals.h, image.c,
7505         wrapper-types.h: New wrapper for invoking a shared static method
7506         without having to pass the runtime generic context argument.
7507
7508 2008-03-14 Rodrigo Kumpera  <rkumpera@novell.com>
7509
7510         * icall-def.h: Add missing function PerformanceCounterCategory::GetInstanceNames.
7511
7512 2008-03-14  Zoltan Varga  <vargaz@gmail.com>
7513
7514         * reflection.c (mono_image_get_field_on_inst_token): Add caching.
7515         
7516         * reflection.c (mono_image_get_field_on_inst_token): New helper function to
7517         create a token from a FieldOnTypeBuilderInst.
7518         (mono_image_create_token): Handle FieldOnTypeBuilderInst.
7519         (resolve_object): Ditto.
7520
7521         * object-internals.h (MonoReflectionFieldOnTypeBuilderInst): New structure
7522         mirroring System.Reflection.Emit.FieldOnTypeBuilderInst.
7523
7524 2008-03-14  Martin Baulig  <martin@ximian.com>
7525
7526         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 68.
7527
7528         * debug-mono-symfile.h
7529         (MONO_SYMBOL_FILE_VERSION): Bump to 41.
7530         (MONO_SYMBOL_FILE_COMPATIBILITY_VERSION): New #define.
7531
7532 2008-03-10  Martin Baulig  <martin@ximian.com>
7533
7534         * debug-mono-symfile.h
7535         (MonoSymbolFileMethodAddress): Removed `num_lexical_blocks' and
7536         `lexical_block_table_offset'.
7537         (MonoDebugMethodInfo): Removed `num_lexical_blocks' and
7538         `lexical_blocks'.
7539         (MonoSymbolFile): Added `version'.
7540
7541         * mono-debug.h
7542         (MonoDebugLexicalBlockEntry): Removed.
7543         (MonoDebugMethodJitInfo): Removed `num_lexical_blocks' and
7544         `lexical_blocks'.
7545
7546         * mono-debug.c (mono_debug_add_method): Don't compute lexical
7547         blocks here; the debugger now does this internally.
7548
7549 2008-02-27  Martin Baulig  <martin@ximian.com>
7550
7551         * object.c (mono_runtime_exec_main): Call
7552         `mono_debugger_event (MONO_DEBUGGER_EVENT_REACHED_MAIN)' and
7553         `mono_debugger_event (MONO_DEBUGGER_EVENT_MAIN_EXITED)' here.
7554
7555 2008-03-12 Rodrigo Kumpera  <rkumpera@novell.com>
7556
7557         * verify.c (verify_type_compatibility_full): Allow native int to be converted
7558         to native pointer in non-strict mode. Required to "(IntPtr)null" work.
7559
7560 2008-03-12 Rodrigo Kumpera  <rkumpera@novell.com>
7561
7562         * verify.c (verify_ldftn_delegate): Accept a sealed type when using
7563         ldftn with a virtual method.
7564
7565 2008-03-13  Geoff Norton  <gnorton@novell.com>
7566
7567         * decimal.c:  Only include memory.h if the platform has it.
7568
7569 Wed Mar 12 12:11:06 CET 2008 Paolo Molaro <lupus@ximian.com>
7570
7571         * assembly.c, class.c, metadata-internals.h: make sure public key
7572         tokesns are compared in a case-insensitive way. Also, all
7573         the lookups in the GAC use a lowercase public key token
7574         (gaacutil already does the lowercasing on install). Fixes
7575         bug #369541.
7576
7577 2008-03-11 Rodrigo Kumpera  <rkumpera@novell.com>
7578
7579         * verify.c (mono_delegate_signature_equal): Do proper variance check on arguments
7580         and return value.
7581
7582 Tue Mar 11 17:41:38 CET 2008 Paolo Molaro <lupus@ximian.com>
7583
7584         * image.c: when someone loads a mscorlib from a file, return the
7585         currently loaded mscorlib (fixes bug #369253).
7586
7587 Tue Mar 11 16:47:32 CET 2008 Paolo Molaro <lupus@ximian.com>
7588
7589         * class.c: handle types with no parents by forcing them to have
7590         System.Object as a parent and marking them as broken (this currently
7591         allows the first part of bug #369173 to work as well, likely because
7592         we don't check for typeload exceptions everywhere yet).
7593
7594 Tue Mar 11 15:23:54 CET 2008 Paolo Molaro <lupus@ximian.com>
7595
7596         * class.c: more complete check that types belong to corlib
7597         (fixes second part of bug #369173).
7598
7599 2007-03-10  Bill Holmes  <billholmes54@gmail.com>
7600
7601         * generic-sharing.c:  Including glib.h for the MSVC builds to define
7602           "inline" to "__inline" before including mono-membar.h.
7603           
7604         * mono-perfcounters.c:  Adding HAVE_SYS_TIME_H check for MSVC builds.
7605           Rename "Unknown" to "CatTypeUnknown" to avoid name collisions for 
7606           MSVC builds.
7607
7608         Contributed under MIT/X11 license.
7609
7610 2008-03-10 Rodrigo Kumpera  <rkumpera@novell.com>
7611
7612         * verify.c (do_invoke_method): Remove return type validation.
7613
7614         * verify.c (do_ret): Do return type validation at return site instead of
7615         call site.
7616
7617 2008-03-10 Rodrigo Kumpera  <rkumpera@novell.com>
7618
7619         * verify.c (do_invoke_method): Mark callvirt to static methods unverifiable.
7620
7621         * verify.c: Some todos cleaned and improved a few error messages.
7622
7623 2008-03-08  Zoltan Varga  <vargaz@gmail.com>
7624
7625         * class.c (mono_class_setup_mono_type): Improve the test for corlib.
7626
7627 2008-03-07  Zoltan Varga  <vargaz@gmail.com>
7628
7629         * class.c (mono_class_setup_mono_type): Handle types whose name clashes with
7630         system types correctly.
7631
7632         * exception.h exception.c (mono_exception_from_token_two_strings): New helper
7633         function.
7634
7635 2008-03-06  Zoltan Varga  <vargaz@gmail.com>
7636
7637         * assembly.c (build_assembly_name): Fix a warning.
7638
7639 Thu Mar 6 19:43:41 CET 2008 Paolo Molaro <lupus@ximian.com>
7640
7641         * marshal.c: ldfld_remote and stfld_remote needs just one wrapper as
7642         the called function takes an object type argument. Fixes storing or
7643         valuetypes across remoting as well as reducing memory usage.
7644         * image.c, metadata-internals.h: remove now unused ldfld_remote and
7645         stfld_remote wrapper caches.
7646
7647 2008-03-06  Zoltan Varga  <vargaz@gmail.com>
7648
7649         * icall.c (mono_lookup_internal_call): Update the exception message when an icall
7650         is not found.
7651
7652         * reflection.c (mono_image_register_token): New helper function to save
7653         a token->object mapping.        
7654
7655         * icall.c (ves_icall_ModuleBuilder_RegisterToken): New icall to access it from
7656         managed code.
7657
7658         * reflection.c (_mono_reflection_parse_type): Distinguish between vectors and
7659         one dimension arrays. Fixes #367670.
7660         (mono_reflection_get_type_internal): Ditto.
7661
7662 Tue Mar 4 19:04:02 CET 2008 Paolo Molaro <lupus@ximian.com>
7663
7664         * marshal.c: mono_load_remote_field_new() always returns object.
7665         so use the proper signature (fixes bug #366445).
7666
7667 2008-03-04  Zoltan Varga  <vargaz@gmail.com>
7668         
7669         * class-internals.h (MonoMethod): Remove unused uses_this flag, 
7670         add an 'inline_failure' flag instead.
7671
7672 2008-03-04  Mark Probst  <mark.probst@gmail.com>
7673
7674         * domain-internals.h, domain.c: Replaced MonoGenericSharingContext
7675         with a new structure, MonoGenericJitInfo, in the MonoJitInfo.  It
7676         contains the location of "this", used for exception handling.
7677
7678 2008-03-04  Zoltan Varga  <vargaz@gmail.com>
7679
7680         * class.c (mono_class_layout_fields): Set the min alignment of small structs to
7681         their size on all platforms for perf reasons.
7682
7683 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
7684
7685         * reflection.h: Move mono_reflection_is_valid_dynamic_token to
7686         object-internal.h
7687
7688         * object-internal.h: Same.
7689
7690 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
7691
7692         * reflection.h: Fix the build I just broke.
7693
7694 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
7695
7696         * reflection.c (mono_reflection_is_valid_dynamic_token): New function,
7697         Test if a token is valid, this remove explicit usage of 
7698         MonoDynamicImage::tokens from the verifier code.
7699
7700         * reflection.h: Added mono_reflection_is_valid_dynamic_token.
7701
7702         * verify.c (token_bounds_check): Use mono_reflection_is_valid_dynamic_token
7703         instead of direct access to MonoDynamicImage::tokens.
7704
7705 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
7706
7707         * verify.c (token_bounds_check): Fix the build I just broke.
7708
7709 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
7710
7711         * verify.c (token_bounds_check): Fix bounds check for dynamic images.
7712
7713         * verify.c (verifier_load_method): Fixed the errors message.
7714
7715         * verify.c (mono_method_verify): Fixed a debug message.
7716
7717 Thu Feb 28 19:49:45 CET 2008 Paolo Molaro <lupus@ximian.com>
7718
7719         * icall-def.h, domain.c, mono-perfcounters-def.h, mono-perfcounters.c,
7720         mono-perfcounters.h, class-internals.h: support for predefined
7721         writable counters, query of categories and counters, bugfixes.
7722
7723 2008-02-28 Rodrigo Kumpera  <rkumpera@novell.com>
7724
7725         * verify.c (do_refanytype): Verify the refanytype opcode.
7726
7727         * verify.c (mono_method_verify): Use do_refanytype.
7728
7729 2008-02-28 Rodrigo Kumpera  <rkumpera@novell.com>
7730
7731         * verify.c (do_mkrefany): Verify the mkrefany opcode.
7732
7733         * verify.c (mono_method_verify): Use do_mkrefany.
7734
7735 Wed Feb 27 19:49:16 CET 2008 Paolo Molaro <lupus@ximian.com>
7736
7737         * Makefile.am, icall-def.h, icall.c, mono-perfcounters-def.h,
7738         mono-perfcounters.c, mono-perfcounters.h: basic performance counter
7739         implementation.
7740
7741 2008-02-27  Zoltan Varga  <vargaz@gmail.com>
7742
7743         * marshal.c (mono_marshal_get_synchronized_wrapper): Fix the code which throws
7744         the type load exception.
7745
7746 2008-02-27 Rodrigo Kumpera  <rkumpera@novell.com>
7747
7748         * verify.c: Added a few FIXME for method signatures
7749
7750         * verify.c (do_invoke_method): Use mono_method_get_signature_full instead
7751         of mono_method_get_signature and get vararg call working. Removed unused
7752         checks for return value.
7753
7754         * verify.c (do_refanyval): Verify the refanyval opcode.
7755
7756         * verify.c (mono_method_verify): Implemented verification of arglist and
7757         use do_refanyval.
7758
7759 2008-02-27  Zoltan Varga  <vargaz@gmail.com>
7760
7761         * class.c (mono_class_setup_methods): Move the check for synchronized methods on
7762         vtypes to marshal.c.
7763
7764         * marshal.c (mono_marshal_get_synchronized_wrapper): Do the vtype check here so
7765         it works for AOT as well.
7766
7767 Tue Feb 26 17:46:32 CET 2008 Paolo Molaro <lupus@ximian.com>
7768
7769         * monitor.c, threads.c, threadpool.c: replace the use of GetTickCount ()
7770         with mono_msec_ticks () which is monotonic and doesn't cause bugs when
7771         the system time is adjusted.
7772
7773 Tue Feb 26 17:40:10 CET 2008 Paolo Molaro <lupus@ximian.com>
7774
7775         * icall.c, icall-def.h: use the new time functions (fixes the
7776         non-monotonic behaviour of TickCount).
7777
7778 2008-02-26  Zoltan Varga  <vargaz@gmail.com>
7779
7780         * reflection.c (mono_custom_attrs_from_builders): Revert the last change as
7781         it breaks the build.
7782         
7783         * reflection.c (mono_custom_attrs_from_builders): Assert instead of a crash if the
7784         cattr is not finished yet.
7785
7786 2008-02-25 Rodrigo Kumpera  <rkumpera@novell.com>
7787
7788         * verify.c: Proper token validation for field, method and type.
7789
7790 2008-02-25 Rodrigo Kumpera  <rkumpera@novell.com>
7791
7792         * loader.c (field_from_memberref): Generate a loader error if the type is not found.
7793
7794         * loader.c (method_from_memberref): Generate type load error instead of method missing
7795         if the type is not found.
7796
7797 2008-02-23  Zoltan Varga  <vargaz@gmail.com>
7798
7799         * marshal.c (mono_marshal_emit_managed_wrapper): Avoid generating invalid IL if
7800         some of the conversions caused the generation of a marshal directive exception.
7801
7802 2008-02-21 Rodrigo Kumpera  <rkumpera@novell.com>
7803
7804         verify.c: Report which exception should be thrown by the JIT.
7805         Added a lot of FIXME notes.
7806
7807 2008-02-22  Mark Probst  <mark.probst@gmail.com>
7808
7809         * generic-sharing.c: Runtime generic context slots are not
7810         instantiated on init anymore.  Instead, provide function to do the
7811         instantiating on demand.
7812
7813         * class-internals.h: Added vtable to runtime generic context.
7814         Macros for encoding direct and indirect slot offsets in one
7815         guint32.
7816
7817 2008-02-21  Mark Probst  <mark.probst@gmail.com>
7818
7819         * object.c, generic-sharing.c: Moved some generic sharing code
7820         from object.c to generic-sharing.c.
7821
7822         * generic-sharing.c: Added support for extensible runtime generic
7823         context.
7824
7825         * metadata-internals.h: Two new hash tables in MonoImage for
7826         extensible runtime generic context support.
7827
7828         * domain.c: Unregister generic vtables upon domain unloading.
7829
7830         * image.c: Destroy new hash tables upon image unloading.
7831
7832         * metadata.c: Unregister generic subclasses upon image unloading.
7833
7834         * class-internals.h: New data structure for runtime generic
7835         context template.  New fields in the runtime generic context for
7836         extensible part.
7837
7838         * Makefile.am: Added generic-sharing.c.
7839
7840 2008-02-21 Rodrigo Kumpera  <rkumpera@novell.com>
7841
7842         icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): If
7843         there is a pending loader exception, raise it.
7844
7845         icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
7846         same.
7847
7848         icall.c (ves_icall_System_Reflection_Module_ResolveFieldToken): 
7849         same.
7850
7851         Fixes #363450.
7852
7853 2008-02-20  Zoltan Varga  <vargaz@gmail.com>
7854
7855         * icall.c (ves_icall_Type_GetPacking): Handle dynamic types.
7856
7857         * assembly.c (mono_assembly_load_from_full): Fix a leak in the previous patch.
7858         
7859         * assembly.c (mono_assembly_load_from_full): Return the non-refonly corlib for
7860         ref-only requests for compatibility with MS.
7861
7862 2008-02-20  Raja R Harinath  <harinath@hurrynot.org>
7863
7864         * reflection.c (mono_custom_attrs_from_method): Don't silently
7865         return an empty list for generic method instances.
7866         (mono_custom_attrs_from_param): Likewise.
7867
7868 2008-02-20  Rodrigo Kumpera  <rkumpera@novell.com>
7869             Raja R Harinath  <harinath@hurrynot.org>
7870
7871         Fix #354757
7872         * class-internals.h (struct _MonoMethodInflated.is_mb_open): Add.
7873         * class.c (mono_class_inflate_generic_method_full): Initialize it
7874         when a fully-open method is instantiated.
7875         * metadata.c (inflated_method_equal, inflated_method_hash): Update
7876         to new field.
7877         * reflection.c (inflate_mono_method): Don't create a temporary context.
7878
7879 2008-02-20  Raja R Harinath  <harinath@hurrynot.org>
7880
7881         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
7882         Compute correct value, to prepare for imethod->reflection_info going away.
7883
7884 2008-02-19  Zoltan Varga  <vargaz@gmail.com>
7885
7886         * class.c (mono_class_setup_vtable_general): Ignore static methods in interfaces.
7887
7888 2008-02-18 Rodrigo Kumpera  <rkumpera@novell.com>
7889
7890         * verify.c: Implement skip visibility flag.
7891
7892 2008-02-18 Rodrigo Kumpera  <rkumpera@novell.com>
7893
7894         * verify.h: Added MONO_VERIFY_SKIP_VISIBILITY and struct MonoVerifyInfoExtended
7895         which contains an extra field to tell the kind of exception that should be thrown.
7896
7897         * verify.c: Use MonoVerifyInfoExtended instead of MonoVerifyInfo.
7898
7899 2008-02-17  Raja R Harinath  <harinath@hurrynot.org>
7900
7901         * loader.c (mono_method_get_param_names): Initialize 'klass' after
7902         'method' is updated.
7903
7904 2008-02-11  Zoltan Varga  <vargaz@gmail.com>
7905
7906         * class.c (mono_class_layout_fields): Set class->min_align for classes using
7907         explicit layout as well. Fixes #360375.
7908
7909 2008-02-11  Geoff Norton  <gnorton@novell.com>
7910
7911         * loader.c: Guard and dereference against inflated generic methods
7912
7913 2008-02-10  Gert Driesen  <drieseng@users.sourceforge.net>
7914
7915         * class.c: Include Retargetable spec in assembly name.
7916         * assembly.c: Always include PublicKeyToken spec in assembly name
7917         (with value "null" if assembly is not signed), and include
7918         Retargetable spec.
7919         * icall-def.h: Added icall for Assembly.get_fullname.
7920         * icall.c: Added icall returning the fullname of an assembly.
7921
7922 2008-02-09  Zoltan Varga  <vargaz@gmail.com>
7923
7924         * class.c (mono_class_setup_vtable_general): Add a missing call to
7925         mono_class_setup_methods () which is needed in the AOT case.
7926
7927 2008-02-08 Rodrigo Kumpera  <rkumpera@novell.com>
7928
7929         * verify.c (mono_type_get_stack_name): Added. Return the name for the
7930         stack type of the given MonoType.
7931
7932         * verify.c (verify_type_compatibility_full): Handle the void type.
7933
7934         * verify.c (is_compatible_boxed_valuetype): Changed to fit the
7935         way stack merging works.
7936
7937         * verify.c (store_local): Improved verification message.
7938
7939         * verify.c (do_branch_op): If the merging is invalid, the method
7940         is unverifiable and not invalid. Improved error message.
7941
7942         * verify.c (merge_stacks): Properly merge a boxed valuetype and
7943         a reference type diferent than System.Object. Improved error
7944         message.
7945
7946 2008-02-07 Rodrigo Kumpera  <rkumpera@novell.com>
7947
7948         * verify.c (mono_type_is_enum_type): Added. Test if a type is an enum.
7949
7950         * verify.c (mono_type_get_underlying_type_any): Added. Return the underlying
7951         type of an enum even if the argument is byref.
7952
7953         * verify.c: Replace all explicit uses of enumtype and enum_basetype
7954         to calls to mono_type_is_enum_type and mono_type_get_underlying_type_any.
7955
7956         * verify.c: Check for an enum in all cases of MONO_TYPE_GENERICINST.
7957
7958         *verify.c (verify_type_compatibility_full): Make enum types
7959         compatible with their base types.
7960
7961         * verify.c (is_compatible_boxed_valuetype): Added. Check if both
7962         types are compatible for the special case of a boxed valuetype and
7963         System.Object.
7964
7965         * verify.c (verify_stack_type_compatibility): The function
7966         is_compatible_boxed_valuetype was extracted from here.
7967
7968         * verify.c (push_arg): Only set ctx->has_this_store if the method
7969         is not static.
7970
7971         * verify.c (do_ldelem): Fixed a typo in an error message and added
7972         strict check for mixing int32 and native int as the array type
7973         and ldelem type.
7974
7975         * verify.c (merge_stacks): Consider boxed valuetypes in the
7976         compatibility checks.
7977
7978 2008-02-07  Massimiliano Mantione  <massi@ximian.com>
7979         * profiler.h: (MonoGCEvent): Added start-stop the world events.
7980
7981 2008-02-06  Massimiliano Mantione  <massi@ximian.com>
7982         *class.c: use_new_interface_vtable_code: renamed the env var to have
7983         a "MONO_" prefix, and fix the logic to enable it by default.
7984
7985 2008-02-06  Massimiliano Mantione  <massi@ximian.com>
7986         *class.c:
7987         mono_class_setup_vtable_general: rewrote the way in which interface
7988         methods are added to vtables. Makes bug-77127.exe pass, and hopefully
7989         makes the code more maintainable.
7990         For now the old code is still there, and can be activated setting
7991         the env var "USE_NEW_INTERFACE_VTABLE_CODE".
7992
7993 2008-02-06 Rodrigo Kumpera  <rkumpera@novell.com>
7994
7995         * verify.c: guarded some debug functions around and #ifdef.
7996
7997         * verify.c (merge_stacks): implement proper PIII 1.8.1.3 stack state merging.
7998
7999 2008-02-06  Zoltan Varga  <vargaz@gmail.com>
8000
8001         * marshal.c (mono_marshal_get_runtime_invoke): Revert the direct_wrapper
8002         changes for now since they seem to break too many things.
8003
8004 2008-02-05  Mark Probst  <mark.probst@gmail.com>
8005
8006         * marshal.c, marshal.h (mono_marshal_find_bitfield_offset,
8007         mono_marshal_find_nonzero_bit_offset): Added macro and function
8008         for finding the byte- and bit-offset of a bitfield within a
8009         struct.
8010
8011 2008-02-05  Zoltan Varga  <vargaz@gmail.com>
8012
8013         * marshal.c (mono_marshal_get_ptr_to_struct): Make the signature non-pinvoke.
8014         (mono_marshal_get_struct_to_ptr): Ditto.
8015
8016         * marshal.c (mono_marshal_get_runtime_invoke): Fix the signature of 
8017         cctor_signature.
8018
8019 2008-02-03  Zoltan Varga  <vargaz@gmail.com>
8020
8021         * marshal.c (mono_marshal_get_runtime_invoke): Fix sharing of runtime wrappers
8022         between methods for non-corlib types.
8023
8024 2008-02-02  Geoff Norton  <gnorton@novell.com>
8025
8026         * loader.c (mono_method_get_param_names): Populate the parameter name for 
8027         generic parameters as well. (Fixes #342536)
8028
8029 2008-01-31 Rodrigo Kumpera  <rkumpera@novell.com>
8030
8031         * verify.c (is_valid_bool_arg): Allow boxed values and null literals as well.
8032
8033         * verify.c (do_invoke_method): Fix for calling with byref structs.
8034
8035         * verify.c (do_cast): push a boxed value type based on the type token and not
8036         the type of stack.
8037
8038 2008-01-31  William Holmes  <billholmes54@gmail.com>
8039
8040         * process.c (process_module_string_read): Check the size returned form 
8041           VerQueryValue to avoid out of memory exception. 
8042
8043 2008-01-30  Zoltan Varga  <vargaz@gmail.com>
8044
8045         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
8046         Handle properly modules which are not in the moduleref table. Fixes
8047         #356938.
8048
8049 2008-01-29  Zoltan Varga  <vargaz@gmail.com>
8050
8051         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Remove
8052         the dynamic case which is now in managed code.
8053         (ves_icall_System_Reflection_Assembly_GetTypes): Ditto.
8054
8055         * marshal.c (mono_string_to_bstr): Fix a warning.
8056         (init_com_provider_ms): Ditto.
8057
8058         * appdomain.c (ves_icall_System_AppDomain_createDomain): Add some FIXMEs.
8059
8060         * exception.c (mono_get_exception_out_of_memory): New helper function.
8061
8062 2008-01-28  Jonathan Chambers  <joncham@gmail.com>
8063
8064         * marshal.c: Add support for BSTR marshalling
8065         using other COM systems.
8066
8067         Code is contributed under MIT/X11 license.
8068
8069 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
8070
8071         * object.c (mono_runtime_invoke_array): reverted previous
8072         commit as it breaks the build.
8073
8074 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
8075
8076         * object.c (mono_runtime_invoke_array): Verify arguments for
8077         invalid types. Fixes #348522.
8078
8079 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
8080
8081         * verify.c: added IL_CODE_CALL_NONFINAL_VIRTUAL to track calls to
8082         non-final virtual calls using call. 
8083
8084         * verify.c (do_invoke): fixed some TODOs.
8085
8086         * verify.c (push_arg): set has_this_store for "ldarga 0".
8087
8088 2008-01-27  Zoltan Varga  <vargaz@gmail.com>
8089
8090         * reflection.c (reflection_methodbuilder_to_mono_method): Allow DynamicMethods
8091         which belong to an inflated class. Fixes #356531.
8092
8093 2008-01-26  Robert Jordan  <robertj@gmx.net>
8094
8095         * file-io.c: Implement and use wrappers for GetFileAttribute|Ex ()
8096         which resort to FindFirstFile when a certain error condition
8097         (ERROR_SHARING_VIOLATION) occured. Fixes bug #325212.
8098         Code is contributed under MIT/X11 license.
8099
8100 2008-01-24  Jonathan Chambers  <joncham@gmail.com>
8101
8102         * marshal.c (emit_marshal_string): Fix out string marshalling
8103         to use specified encoding. Fixes #323900.
8104
8105         Code is contributed under MIT/X11 license.
8106
8107 2008-01-24  Raja R Harinath  <harinath@hurrynot.org>
8108
8109         * class.c (mono_class_inflate_generic_method_full): Don't modify
8110         iresult->context after cache check.
8111
8112 2008-01-23  Zoltan Varga  <vargaz@gmail.com>
8113
8114         * class.c (mono_class_inflate_generic_method_full): Change the
8115         struct assignments to memcpy for better visibility and add some comments.
8116
8117 2008-01-23  Dick Porter  <dick@ximian.com>
8118
8119         * threads.c (mono_threads_set_shutting_down): Simplify shutdown
8120         procedure, and make it work on windows.
8121
8122 2008-01-22  Zoltan Varga  <vargaz@gmail.com>
8123
8124         * object-internals.h (MonoReflectionGenericClass): Make the 'generic_type' field
8125         a MonoReflectionTypeBuilder since it is always of that type.
8126
8127         * reflection.c (mono_type_get_object): Remove an unneccesary check.     
8128
8129         * reflection.c (mono_generic_class_get_object): Simplify this a bit.
8130
8131         * reflection.c (mono_reflection_bind_generic_parameters): Ditto.
8132         
8133         * icall.c (ves_icall_MonoGenericClass_GetParentType): Ditto.
8134
8135         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Ditto.
8136
8137         * reflection.c (mono_reflection_create_runtime_class): Remove already created
8138         instantiations from the type cache.
8139
8140 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
8141
8142         * verify.c (do_ldstr): fixed token verification. previous code was 100% broken.
8143
8144         * verify.c (do_unbox_value): push a controled mutability managed pointer.
8145
8146 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
8147
8148         * verify.c (do_ldstr): added, verifies if the #US token is valid.
8149
8150         * verify.c (mono_method_verify): removed old TODO
8151
8152 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
8153
8154         * verify.c (do_newobj): add visibility check.
8155
8156 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
8157
8158         * verify.c (do_load_function_ptr): add visibility check.
8159
8160 2008-01-21  Massimiliano Mantione  <massi@ximian.com>
8161         *class.c:
8162         mono_generic_class_get_class: hook profiler events.
8163         mono_field_get_offset: added to support heap-shot in the new profiler.
8164         *class.h: exported mono_field_get_offset.
8165         * reflection.c:
8166         mono_reflection_setup_internal_class: hook profiler events.
8167
8168 2008-01-20  Zoltan Varga  <vargaz@gmail.com>
8169
8170         * marshal.c (mono_marshal_emit_native_wrapper): Add a 'check_exceptions' 
8171         argument here too and use it to avoid checking for pending exceptions if 
8172         possible.
8173
8174 2008-01-20  Gert Driesen  <drieseng@users.sourceforge.net>
8175
8176         * assembly.c (build_assembly_name): add arg for passing the assembly
8177         flags. Do not consider a PublicKey with value "null" valid.
8178         (mono_assembly_name_parse_full): added boolean argument that will be
8179         set if the assembly name contains a PublicKeyToken spec. Added support
8180         for the Retargetable spec for which only Yes or No are allowed as valid
8181         value. Consider assembly name invalid if Retargetable spec is set, but
8182         either version, culture or public key (token) are not specified.
8183         * metadata-internals.h: sync signature of mono_assembly_name_parse_full
8184         with implementation in assembly.c.
8185         * icall.c (fill_reflection_assembly_name): also copy assembly flags
8186         from MonoAssemblyName.
8187         (ves_icall_System_Reflection_AssemblyName_ParseName): use newly
8188         introduced argument for mono_assembly_name_parse_full to know if the
8189         assembly name has a PublicKeyToken spec, and if it has instruct
8190         fill_reflection_assembly_name to use default value for keyToken (if
8191         PublicKeyToken is null).
8192
8193 2008-01-18  Rodrigo Kumpera  <rkumpera@novell.com>
8194
8195         * verify.c (mono_method_verify): fixed ovf ops with
8196         float values. They are unverifiable now.
8197
8198 2008-01-18  Rodrigo Kumpera  <rkumpera@novell.com>
8199
8200         * class.c (set_failure_from_loader_error): add BadImageException to the
8201         list of exceptions that can cause a type to fail to load.
8202
8203         * class.c (mono_class_get_exception_for_failure): same.
8204
8205 2008-01-17  Rodrigo Kumpera  <rkumpera@novell.com>
8206
8207         * verify.c (in_any_exception_block): added, check if offset
8208         is part of any exception handling clause.
8209
8210         * verify.c (get_stack_type): added VAR and MVAR types.
8211
8212         * verify.c (do_stobj): better error messages.
8213
8214         * verify.c (do_cpobj): added, check cpobj.
8215
8216         * verify.c (do_initobj): added, check initobj.
8217
8218         * verify.c (do_sizeof): added, check sizeof.
8219
8220         * verify.c (do_localloc): added, check localloc.
8221
8222         * verify.c: adde proper verification for cpobj, initobj, sizeof and localloc.
8223
8224 2008-01-17  Zoltan Varga  <vargaz@gmail.com>
8225
8226         * method-builder.c (mono_mb_emit_native_call): Get rid of the unused
8227         save_lmf/restore_lmf opcodes.
8228
8229         * threads.c (mono_threads_install_notify_pending_exc): New function to
8230         install a callback notifying the JIT there is a pending exception on a thread.
8231         (mono_thread_request_interruption): Call the new callback.
8232         (mono_thread_get_and_clear_pending_exception): New function to return the
8233         exception pending on a thread.
8234
8235         * marshal.c (mono_marshal_get_icall_wrapper): Add a check_exceptions argument
8236         to turn off checking for pending exceptions.
8237         (mono_marshal_get_native_wrapper): Ditto.
8238
8239 2008-01-16  Zoltan Varga  <vargaz@gmail.com>
8240
8241         * threads-types.h: Get rid of the unnecessary extern declarations.
8242
8243 2008-01-16  Gert Driesen  <drieseng@users.sourceforge.net>
8244
8245         * icall.c (ves_icall_Type_GetField): if NonPublic flag is set, only
8246         return field from parent class if not private.
8247         (ves_icall_Type_GetFields_internal): if NonPublic flag is set, only
8248         returns fields from parent class if they are not private.
8249         (method_nonpublic): added function to determine if a given method
8250         should be considered non-public. Returns false for private methods
8251         on parent class, and internal methods from parent on the 1.0 profile.
8252         (ves_icall_Type_GetMethodsByName): if NonPublic flag is set, then
8253         use method_nonpublic function to determine whether method should be
8254         returned.
8255         (property_accessor_public): use newly introduced method_nonpublic
8256         function to determine whether accessor is non-public. 
8257         (ves_icall_MonoType_GetEvent): If NonPublic flag is set, only return
8258         event from parent class if not private. Only return static event if
8259         Static flag is set, and only return static event from parent class if
8260         FlattenHierarchy flag is set.
8261         (ves_icall_Type_GetEvents_internal): If NonPublic flag is set, only
8262         include non-private events from parent class.
8263
8264 2008-01-16  Zoltan Varga  <vargaz@gmail.com>
8265
8266         * icall.c (ves_icall_System_NumberFormatter_GetFormatterTables): Fix a
8267         warning.
8268
8269 2008-01-16  Wade Berrier <wberrier@novell.com>
8270
8271         * security.c: Add assembly.h header to appease some warnings
8272
8273 2008-01-16  Dick Porter  <dick@ximian.com>
8274
8275         * process.c (process_module_string_read): Remove trailing null
8276         when saving string.
8277
8278 2008-01-16  Mark Probst  <mark.probst@gmail.com>
8279
8280         * class-internals.h: A new data structure describing the layout of
8281         a runtime generic context (MonoRuntimeGenericContextTemplate).
8282
8283         * metadata-internals.h: Added a hash table to MonoDomain that maps
8284         from open generic classes to their runtime generic context
8285         templates.
8286
8287         * object.c: Building of the runtime generic context, including
8288         proper handling of generic type arguments of superclasses.
8289         Building of the runtime generic context according to the template.
8290
8291 2008-01-15  Zoltan Varga  <vargaz@gmail.com>
8292
8293         * class.c (mono_class_setup_fields): Set field.count for generic instances.
8294         Fixes #350856.
8295
8296         * image.c (do_mono_image_open): Pass TRUE as last_exists to 
8297         mono_portability_find_file (). Fixes #325466.
8298         (mono_image_get_public_key): Fix a warning.
8299
8300 2008-01-14  Zoltan Varga  <vargaz@gmail.com>
8301
8302         * class.c (mono_class_from_name): Fix comments for NULL-ness of image parameter.
8303         Fixes #353550.
8304         (mono_class_from_name_case): Ditto.
8305
8306 2008-01-13  Eyal Alaluf <eyala@mainsoft.com>
8307
8308         * icall-def.h number-formatter.h icall.c: Implemented a cross app-domain
8309           common storage for the tables used in the System/NumberFormatter class.
8310
8311 2008-01-13  Zoltan Varga  <vargaz@gmail.com>
8312
8313         * marshal.c (mono_marshal_get_runtime_invoke): Fix a typo.
8314
8315 2008-01-11  Rodrigo Kumpera  <rkumpera@novell.com>
8316
8317         * verify.c (get_boxable_mono_type): check if the token is valid.
8318
8319         * verify.c (set_stack_value): changed to add an error if an
8320         invalid type is set on stack. Changed all callers due to signature change.
8321
8322         * verify.c (do_stobj): implement stobj validation.
8323
8324 2008-01-11  Zoltan Varga  <vargaz@gmail.com>
8325
8326         * reflection.c (reflection_methodbuilder_to_mono_method): No need to
8327         set container->is_method, it was set earlier.
8328
8329         * metadata.c (type_in_image): Handle MVARs which belong to not finished
8330         generic methods.
8331
8332         * reflection.c (mono_reflection_initialize_generic_parameter): Set
8333         is_method of the generic container to TRUE for methods.
8334
8335 2008-01-10  Zoltan Varga  <vargaz@gmail.com>
8336
8337         * metadata.c (type_in_image): Handle type parameters properly.
8338
8339         * class-internals.h (MonoGenericParam): Add an 'image' argument to track
8340         memory ownership of this structure.
8341
8342 2008-01-10  Rodrigo Kumpera  <rkumpera@novell.com>
8343
8344         * verify.c (get_boxable_mono_type): make typedref types been just
8345         unverifiable. check for void type.
8346
8347         * verify.c (do_unbox_any): added, verify opcode unbox.any.
8348
8349         * verify.c (do_load_function_ptr): accept method spec tokens.
8350
8351 2008-01-10  Zoltan Varga  <vargaz@gmail.com>
8352
8353         * marshal.c (mono_class_native_size): Always set *align even if this is called
8354         recursively.
8355
8356 2008-01-09  Zoltan Varga  <vargaz@gmail.com>
8357
8358         * verify.c (mono_verify_corlib): Remove this as it was not used and was 
8359         out-of-date.
8360
8361 2008-01-09  Rodrigo Kumpera  <rkumpera@novell.com>
8362
8363         * verify.c: removed some old unused tables. A huge bunch of small fixes
8364         to things found while testing the verifier with mono basic.
8365
8366         * verify.c (dump_stack_value): dump null literal flag to.
8367
8368         * verify.c (verify_type_compatibility_full): fix comparison
8369         for types that have a generic super type.
8370
8371         * verify.c (verify_stack_type_compatibility): fix compatibility
8372         between null literals and reference types. fix compatibility between
8373         boxed valuetypes and object. fix corner case test for enums.
8374
8375         * verify.c (do_cmp_op): proper verification of cgt.un in case
8376         of reference types.
8377
8378         * verify.c (do_invoke_method): fix error message.
8379
8380         * verify.c (do_store_indirect
8381
8382         * verify.c (check_is_valid_type_for_field_ops): proper verification
8383         of managed pointers to valuetypes and boxed valuetypes. proper verification
8384         of null literals.
8385
8386         * verify.c (do_unbox_value): expect valuetypes to be always boxed. don't
8387         allow token to be a reference type.
8388
8389         * verify.c (do_cast): proper handling of boxes valuetypes.
8390
8391         * verify.c (do_stelem): proper handling of storing a boxed valuetype
8392         in object[].
8393
8394         * verify.c (mono_method_verify): pass the opcode to do_cmp_op
8395         to handle cgt.un properly. Implement add/mul/sub ovf opcodes.
8396         fixed the decoding of unbox_any
8397
8398 2008-01-08  Zoltan Varga  <vargaz@gmail.com>
8399
8400         * boehm-gc.c (mono_gc_deregister_root): Fix the size passed to libgc.
8401
8402 2008-01-08  Rodrigo Kumpera  <rkumpera@novell.com>
8403
8404         * verify.c (do_newobj): do delegate verification.
8405
8406         * verify.c (verify_delegate_compatibility): perform delegate
8407         verification.
8408
8409         * verify.c (verify_ldftn_delegate): perform tests related to
8410         ldftn delegates.
8411
8412         * verify.c (mono_delegate_signature_equal): perform the
8413         slightly diferent signature comparison required by delegates.
8414
8415         * metadata.c (mono_metadata_type_equal_full): added and exported
8416         as MONO_INTERNAL. This is a version of mono_metadata_type_equal that
8417         allows signature only comparison.
8418
8419         * metadata-internal.h (mono_metadata_type_equal_full): added and exported
8420         as MONO_INTERNAL.
8421
8422 2008-01-07  Rodrigo Kumpera  <rkumpera@novell.com>
8423
8424         * verify.c: added a bunch of stack_slot_* functions to
8425         make access to stack slot type easier. This is required to
8426         allow optional flags, like null literal, boxed value and
8427         this pointer.
8428         All access paths to IlStackDesc::stype have been changed 
8429         to use these new funcions.
8430         Removed a bunch of unused functions and cleared all warnings.
8431         This patch introduces the usage of the this pointer and 
8432         boxed value flags.
8433
8434 2008-01-07  Zoltan Varga  <vargaz@gmail.com>
8435
8436         * boehm-gc.c (mono_gc_deregister_root): Fix win32 build.
8437
8438 2008-01-06  Zoltan Varga  <vargaz@gmail.com>
8439
8440         * appdomain.c (ves_icall_System_AppDomain_ExecuteAssembly): Change signature to
8441         match managed version.
8442
8443         * appdomain.c: Bump corlib version.
8444         
8445         * appdomain.c (ves_icall_System_AppDomain_ExecuteAssembly): Check for a null
8446         argument.
8447
8448 2008-01-06  Gert Driesen  <drieseng@users.sourceforge.net>
8449
8450         * icall.c (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies)
8451         Set public key token to zero-length byte array if assembly is not
8452         strongnamed.
8453
8454 2008-01-05  Zoltan Varga  <vargaz@gmail.com>
8455
8456         * icall.c (ves_icall_System_Array_SetValueImpl): Use a write barrier when
8457         writing a vtype array elem.
8458
8459 2007-01-05  Gert Driesen  <drieseng@users.sourceforge.net>
8460
8461         * assembly.c (build_assembly_name): return FALSE if length of token is
8462         not 16 (if not "null").
8463         (mono_assembly_name_parse_full): return FALSE if value of version,
8464         culture, token or key is 0.
8465         * icall.c (fill_reflection_assembly_name): add boolean arguments to
8466         specify whether public key and public key token must be set to default
8467         value (zero-length byte array) if not available. Set versioncompat to
8468         SameMachine. If public key is available or the default is set, then
8469         set PublicKey flag.
8470         (ves_icall_System_Reflection_Assembly_FillName): if no public key
8471         is available, use empty byte array as default value. On the 2.0
8472         profile, use default value for public key token if not set.
8473         (ves_icall_System_Reflection_InternalGetAssemblyName): on the 1.0
8474         profile, use default value for public key if not set. On the 2.0
8475         profile, use default value for public key token if not set.
8476         (ves_icall_System_Reflection_AssemblyName_ParseName): do not set
8477         default values for public key and public key token.
8478
8479 2008-01-05  Zoltan Varga  <vargaz@gmail.com>
8480
8481         * object-internals.h (MonoReflectionAssemblyName): Add 'processor_architecture'
8482         field to keep it in synch with the managed object.
8483
8484         * marshal.c (emit_marshal_object): Add support for byref marshalling of
8485         delegates. Fixes #351520.
8486
8487         * sgen-gc.c (conservatively_pin_objects_from): Tell valgrind that the pin queue
8488         contains defined memory.
8489         
8490         * sgen-gc.c: Fix 64 bit warnings. Fix some typos. Update GC stats in mono_stats.
8491
8492         * sgen-gc.c (build_nursery_fragments): Handle half-constructed objects correctly.
8493         
8494         * sgen-gc.c (check_consistency): New helper function to do a consistency check
8495         of the GC data structures.
8496
8497         * gc-internal.h: Moved the REGISTER/UNREGISTER macros here from os/gc_wrapper.h.
8498
8499         * *.c: Include metadata/gc-internal.h instead of os/gc_wrapper.h.
8500         
8501         * object.c (mono_array_full_copy): Fix detection of whenever to use a write
8502         barrier.
8503         (mono_array_clone_in_domain): Ditto.
8504         (mono_array_clone_in_domain): Ditto.
8505
8506         * threads.c (start_wrapper): Register the thread start argument as a GC root.
8507         (cache_culture): Use a write barrier.
8508
8509         * icall.c (ves_icall_System_Array_SetValueImpl): Call a write barrier.
8510         (ves_icall_get_property_info): Ditto.
8511
8512         * object.h (MONO_STRUCT_SETREF): New macro.
8513
8514         * class-internals.h (MonoStats): Add some GC statistics.
8515
8516         * boehm-gc.c null-gc.c: Define mono_gc_deregister_root ().
8517
8518 2008-01-04  Andreas Faerber  <andreas.faerber@web.de>
8519
8520         * exception.c (mono_exception_from_name_two_strings):
8521         Break from loop after method is found.
8522
8523 2008-01-04  Dick Porter  <dick@ximian.com>
8524
8525         * process.c (process_module_string_read): Rename variable to
8526         reflect correct usage, after fixing bug 345972.
8527
8528 2008-01-03  Rodrigo Kumpera  <rkumpera@novell.com>
8529
8530         * verify.c (mono_type_create_fnptr_from_mono_method): 
8531         created a MonoType function pointer instance to be used during
8532         verification. The verifier releases this memory at end.
8533
8534         * verify.c (mono_method_is_constructor): extracted repeated
8535         checks for constructor into a single class.
8536
8537         * verify.c (do_push_field): use new extracted method
8538         for constructor check.
8539
8540         * verify.c (do_newobj): same.
8541
8542         * verify.c (do_ldftn): renamed to do_load_function_ptr
8543         and make it verify ldvirtftn too.
8544
8545         * verify.c (mono_method_verify: proper verification
8546         of ldvirtftn. release created MonoMethod instances.
8547
8548 2007-12-31  Rodrigo Kumpera  <rkumpera@novell.com>
8549
8550         * verify.c (token_bounds_check): added.
8551
8552         * verify.c (do_ldftn): added.
8553
8554         * verify.c (mono_method_verify): proper verificartion of ldftn.
8555
8556 2007-12-31  Rodrigo Kumpera  <rkumpera@novell.com>
8557
8558         * metadata.c (mono_metadata_decode_row): Assert if index is bigger
8559         than the table row count. It's the resposibility of the caller to
8560         make the bounds check and raise the correct error.
8561
8562         * metadata.c (mono_metadata_decode_row_col): Same.
8563
8564         * loader.c (mono_get_method_from_token): perform bounds check
8565         on token for methoddef table.
8566
8567 2007-12-29  Miguel de Icaza  <miguel@novell.com>
8568
8569         * icall.c
8570         (ves_icall_System_CurrentSystemTimeZone_GetTimeZoneData): Turn the
8571         assert into a negative result, the managed code already coped with
8572         that.
8573
8574         Some folks on Windows reported this error. 
8575
8576 2007-12-28  Gert Driesen  <drieseng@users.sourceforge.net>
8577
8578         * appdomain.c: Bump corlib version.
8579         * icall.c:
8580         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies): Use
8581         CultureInfo.CreateCulture to create CultureInfo for name.
8582         (fill_reflection_assembly_name): Use CultureInfo.CreateCulture to
8583         create CultureInfo for name. Fixes bug #347174.
8584
8585 2007-12-27  Rodrigo Kumpera  <rkumpera@novell.com>
8586
8587         * verify.c: added IL_CODE_FLAG_STACK_INITED and IL_CODE_STACK_MERGED
8588         flags.
8589
8590         * verify.c (is_valid_branch_instruction): allow branching to the
8591         first instruction of the protected block.
8592
8593         * verify.c (is_valid_cmp_branch_instruction): same.
8594
8595         * verify.c (stack_init): use IL_CODE_FLAG_STACK_INITED flag to
8596         avoid double initialization.
8597
8598         * verify.c (merge_stacks): use IL_CODE_STACK_MERGED to
8599         detect which cases the eval stack should just be copied.
8600
8601         * verify.c (mono_method_verify): check if the eval stack
8602         is empty when entering a protected block.
8603
8604 2007-12-27  Rodrigo Kumpera  <rkumpera@novell.com>
8605
8606         * verify.c: added is_clause_in_range, is_clause_inside_range,
8607         is_clause_nested and verify_clause_relationship. They perform
8608         the verifications stated in P1 12.4.2.7.
8609
8610         * verify.c (mono_method_verify): remove some unused variables,
8611         add the new exception clause checks, add instruction border
8612         checks for protected block start/end, improved some error 
8613         messages and fixed a bug in the way invalid instruction access
8614         is detected.
8615
8616 2007-12-26  Zoltan Varga  <vargaz@gmail.com>
8617
8618         * boehm-gc.c (mono_gc_register_thread): Use the new GC_register_my_thread () routine
8619         from GC 7.0 if available.
8620
8621         * object.c: Remove an unused define.
8622         
8623         * object.c (mono_class_compute_gc_descriptor): Fix a warning.
8624
8625         * boehm-gc.c (mono_gc_make_descr_for_array): Implement.
8626
8627         * null-gc.c (mono_gc_make_descr_for_array): Implement.
8628
8629         * object.c (mono_class_compute_gc_descriptor): Remove an #ifdef SGEN_GC.
8630
8631         * gc-internal.h: Change the signature of mono_gc_make_descr_for_string ()
8632         to take the same arguments as the other make_descr functions.
8633
8634         * boehm-gc.c null-gc.c: Add implementation for make_descr functions.
8635
8636         * objects.c: Get rid of the MAKE_DESCRIPTOR macros, call make_descr functions
8637         directly.
8638
8639         * boehm-gc.c (mono_gc_base_init): Moved the setting of GC_stackbottom here from
8640         mini.c.
8641
8642         * object.c (mono_class_compute_gc_descriptor): Move the GC_init_gcj_malloc () 
8643         call to boehm-gc.c.
8644
8645         * boehm-gc.c (mono_gc_register_root): Fix a warning.
8646
8647         * null-gc.c (mono_gc_register_root): Fix a warning.
8648
8649         * reflection.c (ALLOC_REFENTRY): Use mono_gc_alloc_fixed for boehm as well.
8650
8651         * boehm-gc.c (mono_gc_register_root): Moved definition here from gc_wrapper.h.
8652         (mono_gc_base_init): Call GC_init ().
8653
8654         * null-gc.c: Define mono_gc_register_root () as a no-op.
8655
8656         * domain.c appdomain.c: Call mono_gc_base_init () instead of MONO_GC_PRE_INIT ().
8657
8658 2007-12-24  Rodrigo Kumpera  <rkumpera@novell.com>
8659
8660         * verify.c: add prototype for merge_stacks at top
8661
8662         * verify.c (do_switch): added.
8663
8664         * verify.c (merge_stacks): on some cases the stack merging
8665         was not happening properly. Unequal stack sizes at merge
8666         points should be invalid.
8667
8668         * verify.c (mono_method_verify): added more debug info on stack state.
8669         verify switch properly.
8670
8671 2007-12-24  Zoltan Varga  <vargaz@gmail.com>
8672
8673         * method-builder.h: New file, moved the mono_mb_ declarations here from 
8674         marshal.h.
8675
8676         * boehm-gc.c marshal.c: Include method-builder.h.
8677
8678         * marshal.c: Use mono_mb_emit_branch_label () in a few places.
8679
8680         * marshal.c: Remove some code which is now in method-builder.c.
8681
8682 2007-12-23  Zoltan Varga  <vargaz@gmail.com>
8683
8684         * method-builder.c: New file, extraction of the method builder functionality 
8685         from marshal.c.
8686
8687         * marshal.c: Move the mb functions into method-builder.c.
8688
8689         * marshal.h marshal.c: Export some mono_mb_... functions.
8690
8691         * marshal.c: Use mono_mb_get_label () and mono_mb_patch_branch () in all places.
8692
8693         * loader.c (field_from_memberref): Remove the dynamic case, it is handled in
8694         the caller.
8695
8696         * class.c (mono_class_get_full): Check the token type in the dynamic case.
8697
8698         * loader.c (mono_field_from_token): Ditto.      
8699
8700         * loader.c (mono_get_method_from_token): Change the check so it checks memberref
8701         type as well.
8702         
8703         * loader.c (mono_get_method_from_token): Check the token type in the dynamic case.
8704         Fixes #342565.
8705
8706         * class-internals.h: Add new loader error type MONO_EXCEPTION_BAD_IMAGE plus
8707         a helper function for setting it.
8708
8709         * loader.c (mono_loader_error_prepare_exception): Handle MONO_EXCEPTION_BAD_IMAGE.
8710
8711         
8712         * assembly.c: Significally simplify code now that referenced assemblies are 
8713         loaded lazily. Get rid of the 'loading' hashtables. Hopefully fixes #347629.
8714
8715         * threads.h: Don't include  the internal threads-types.h header file. Fixes
8716         #349952.
8717
8718 2007-12-21  Rodrigo Kumpera  <rkumpera@novell.com>
8719
8720         * verify.c: added enum value IL_CODE_FLAG_WAS_TARGET, to represent
8721         instructions that were target of branches or are at protected block boundaries.
8722
8723         * verify.c (in_same_block): handle filter clauses.
8724
8725         * verify.c (is_valid_branch_instruction): added. checks the target of
8726         instructions br or brtrue/false.
8727
8728         * verify.c (is_valid_cmp_branch_instruction): added. checks the target of
8729         binary branch instructions such as beq and bge.
8730
8731         * verify.c (init_stack_with_value): renamed to init_stack_with_value_at_exception_boundary
8732         and made it pin the instruction as been part of the exception block.
8733
8734         * verify.c (do_boolean_branch_op): use is_valid_branch_instruction instead
8735         of in_same_block.
8736
8737         * verify.c (do_branch_op): use is_valid_cmp_branch_instruction instead
8738         of in_same_block.
8739
8740         * verify.c (do_ret): ret from a protected block is unverifiable and
8741         not invalid.
8742
8743         * verify.c (do_static_branch): verify br and br.s instructions.
8744
8745         * verify.c (merge_stacks): add extra param to support detection
8746         of branches in the middle of instructions.
8747         
8748         * verify.c (mono_method_verify): verify branches and exception blocks
8749         that target the middle of instructions. Proper verification of br and br.s.
8750
8751 2007-12-21  Zoltan Varga  <vargaz@gmail.com>
8752
8753         * reflection.c (reflection_methodbuilder_from_ctor_builder): Initialize
8754         skip_visibility field.
8755         (reflection_methodbuilder_from_dynamic_method): Ditto.
8756
8757         * object.c (mono_class_compute_gc_descriptor): Remove more unused icall
8758         registrations. Fixes #348193.
8759
8760         * threads.h: Move the internal mono_thread_get_pending_exception () to
8761         threads-types.h and rename it to mono_thread_get_undeniable_exception ().
8762
8763 2007-12-20  Zoltan Varga  <vargaz@gmail.com>
8764
8765         * object.c (mono_class_compute_gc_descriptor): Remove unused GC_gcj_fast_malloc
8766         icall registration. Fixes #348193.
8767
8768         * marshal.c (mono_marshal_get_runtime_invoke): Put all runtime invoke wrappers
8769         for corlib classes into object. Fixes #349621.
8770
8771 2007-12-20  Gert Driesen  <drieseng@users.sourceforge.net>
8772
8773         * icall.c (property_accessor_nonpublic): new function to determine
8774         whether an accessor allows a property to be considered non-public.
8775         Returns false for private accessor(s) from parent class, and internal
8776         accessor(s) from parent on 2.0 profile (and higher).
8777         (ves_icall_Type_GetPropertiesByName): Use newly introduced function
8778         to determine whether property should be included if NonPublic flag
8779         is set. Fixes bug #349078.
8780
8781 2007-12-20  Rodrigo Kumpera  <rkumpera@novell.com>
8782
8783         * verify.c (init_stack_with_value): added.
8784
8785         * verify.c (mono_method_verify): extracted common
8786         code for exception initialization into init_stack_with_value.
8787
8788         * verify.c (mono_method_verify): initialize the exception
8789         for handler clauses as well.
8790
8791         * verify.c (mono_method_verify): fix the exception clause
8792         ordering rules, it should use handler end offset and not
8793         start offset.
8794
8795 Thu Dec 20 12:27:24 CET 2007 Paolo Molaro <lupus@ximian.com>
8796
8797         * rawbuffer.c: remove useless warning.
8798
8799 Thu Dec 20 12:10:38 CET 2007 Paolo Molaro <lupus@ximian.com>
8800
8801         * threads.h, threads-types.h: move functions to the correct header
8802         (fixes bug#349952).
8803
8804 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
8805
8806         * verify.c (mono_method_verify): proper verification
8807         of exception handling clauses ranges and fallthru in
8808         and out of protected blocks.
8809
8810 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
8811
8812         * verify.c (mono_method_verify): fixed compilation issue.
8813
8814 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
8815
8816         * verify.c (mono_method_verify): a printf slipped in, changed
8817         to use verifier debug macro.
8818
8819 2007-12-18  Rodrigo Kumpera  <rkumpera@novell.com>
8820
8821         * verify.c (is_correct_leave): check for filter clauses.
8822
8823         * verify.c (do_filter): added.
8824
8825         * verify.c (mono_method_verify): property verification of leave.
8826
8827
8828 2007-12-18  Mark Probst  <mark.probst@gmail.com>
8829
8830         * threads.c: Disable calls to _wapi_thread_signal_self() to fix
8831         Win32 build, until we figure out how to do the proper thing on
8832         Win32.
8833
8834 2007-12-17  Zoltan Varga  <vargaz@gmail.com>
8835
8836         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Fix a crash introduced
8837         by the previous patch.
8838         
8839         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Avoid calling
8840         the assembly resolve handler for refonly assemblies.
8841
8842 2007-12-17  Mark Probst  <mark.probst@gmail.com>
8843
8844         * threads.c, thread-types.h, icall.c: New shutdown safeguards.
8845         Make sure only one thread is allowed to commence shutdown, and
8846         don't allow new threads to be started once shutdown is in
8847         progress.
8848
8849 2007-12-14  Rodrigo Kumpera  <rkumpera@novell.com>
8850
8851         * verify.c (is_correct_endfilter): added.
8852
8853         * verify.c (is_unverifiable_endfilter): added.
8854
8855         * verify.c (do_endfilter): added.
8856
8857         * verify.c (mono_method_verify): property verification of endfilter
8858         and fixed a corner case or endfinally.
8859
8860 2007-12-13  Rodrigo Kumpera  <rkumpera@novell.com>
8861
8862         * verify.h: new flags to support fail fast of unverifiable code and
8863         do non-strict verification. Non-strict verification is required to
8864         have MS runtime compatibility. There are a huge amount of unverifiable
8865         code that it accepts as verifiable. The strict mode verifies the code
8866         as the specs says.
8867         Non-strict mode will be required in cases where code needs to be
8868         accepted as verifiable but fails under strict mode.
8869
8870         * pedump.c: added support to fail fast and non-strict verification.
8871
8872         * verify.c: added support for both fail fast and non-strict verification.
8873
8874 2007-12-12  Rodrigo Kumpera  <rkumpera@novell.com>
8875
8876         * verify.c (is_correct_endfinally): added.
8877
8878         * verify.c (mono_method_verify): property verification of endfinally.
8879
8880 2007-12-11  Rodrigo Kumpera  <rkumpera@novell.com>
8881
8882         * verify.c (in_any_block): check for filter clauses.
8883
8884         * verify.c (is_correct_rethrow): added.
8885
8886         * verify.c (mono_method_verify): property verification of rethrow.
8887
8888         * metadata.h: added MONO_OFFSET_IN_FILTER macro.
8889
8890 2007-12-11  Rodrigo Kumpera  <rkumpera@novell.com>
8891
8892         * verify.c (do_throw): added.
8893
8894         * verify.c (mono_method_verify): property verification of throw
8895
8896 2007-12-11  Zoltan Varga  <vargaz@gmail.com>
8897
8898         * assembly.c (mono_assembly_load_reference): Try an assembly resolve for ref-only
8899         assemblies. Fixes #346425.
8900
8901 2007-12-10  Zoltan Varga  <vargaz@gmail.com>
8902
8903         * reflection.c (mono_reflection_get_token): Call mono_image_create_token () for
8904         FieldBuilders.
8905
8906         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Fix a warning.
8907
8908         * class.c (mono_lookup_dynamic_token_class): Add a 'valid token' argument to
8909         prevent asserts when this is called with a token which might not be valid.
8910
8911         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Call
8912         lookup_dynamic_token_class with valid_token == FALSE.
8913
8914         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.       
8915
8916         * icall.c (ves_icall_System_Reflection_Module_ResolveStringToken): Ditto.
8917
8918         * icall.c (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
8919         
8920 2007-12-10  Mark Probst  <mark.probst@gmail.com>
8921
8922         * gc.c: Don't delay threadpool thread finalization unless Mono is
8923         shutting down.
8924
8925 Mon Dec 10 11:06:23 CET 2007 Paolo Molaro <lupus@ximian.com>
8926
8927         * threads.c: turn an assert into a non-fatal warning.
8928
8929 2007-12-09  Robert Jordan  <robertj@gmx.net>
8930
8931         * icall.c (GetVirtualMethod): Add missing argument validation.
8932
8933 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
8934
8935         * verify.c (do_cast): added.
8936
8937         * verify.c (mono_method_verify): property verification of castclass and isinst.
8938
8939
8940 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
8941
8942         * verify.c (mono_type_from_opcode): added opcodes for stelem.X.
8943
8944         * verify.c (do_stelem): added.
8945
8946         * verify.c (mono_method_verify): property verification of stelem.X.
8947
8948 2007-12-07  Mark Probst  <mark.probst@gmail.com>
8949
8950         * class.c, class-internals.h: Introduce an environment variable
8951         (MONO_GENERIC_SHARING) through which the extent of generic code
8952         sharing can be controlled (share all classes, share only corlib
8953         classes, or share nothing).
8954
8955         * object.c: Only create runtime generic context for classes for
8956         which sharing is enabled.
8957
8958 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
8959
8960         * verify.c (do_ldelem): refactor it to work with ldelem.any.
8961
8962         * verify.c (mono_method_verify): property verification of ldelem.any.
8963
8964 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
8965
8966         * verify.c (get_indirect_op_mono_type): renamed to mono_type_from_opcode,
8967         added ldelem.X opcodes.
8968
8969         * verify.c (do_ldelema): fixed possible invalid usage of MonoType.
8970
8971         * verify.c: proper verification of ldelem.X 
8972
8973 2007-12-06  Zoltan Varga  <vargaz@gmail.com>
8974
8975         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Allow interface cctors to be called too.
8976
8977 2007-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
8978
8979         * verify.c (mono_method_verify): null literal requires special handling,
8980         the value pushed on stack need to be flagged as so.
8981
8982         * verify.c (do_ldelema): Verify ldelema properly.
8983
8984 2007-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
8985
8986         * verify.c: Verify ldlen properly.
8987
8988 2007-12-05  Zoltan Varga  <vargaz@gmail.com>
8989
8990         * icall.c (ves_icall_MonoField_GetValueInternal): Check that the field belongs
8991         to the target object's type. Fixes #346160.
8992
8993 2007-12-05  Dick Porter  <dick@ximian.com>
8994
8995         * threadpool.c (socket_io_add_poll): Asynchronous connect() on
8996         Solaris needs the same workaround as BSD-derived systems.  Fixes
8997         bug 323524, patch by Burkhard Linke
8998         <burkhard.linke@CeBiTec.Uni-Bielefeld.DE>
8999
9000 2007-12-04  Gert Driesen  <drieseng@users.sourceforge.net>
9001
9002         * process.c: When ProcessStartInfo.ErrorDialog is true, pass window
9003         handle to use when error dialog is shown; otherwise, update mask
9004         to show no error dialog when an error occurs.
9005
9006 2007-12-03  Zoltan Varga  <vargaz@gmail.com>
9007
9008         * icall.c (ves_icall_MonoField_GetRawConstantValue): New icall.
9009
9010         * class.c (mono_class_get_field_default_value): New helper function to initialize
9011         field->def_type and field->data.
9012
9013 2007-11-30  Zoltan Varga  <vargaz@gmail.com>
9014
9015         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Use the delegate trampoline instead of
9016         the general one.
9017
9018         * object.c (mono_runtime_create_delegate_trampoline): New helper function.
9019
9020         * marshal.c: Avoid depending on delegate->method_info being set.
9021
9022         * object.c (mono_delegate_ctor): Avoid initializing delegate->method_info.
9023         
9024         * object.c (mono_delegate_ctor): Set delegate->method.
9025
9026         * object-internals.h (struct _MonoDelegate): Add 'method' field.
9027
9028         * appdomain.c: Bump corlib version.
9029
9030 2007-11-27  Raja R Harinath  <harinath@gmail.com>
9031
9032         * metadata.c (mono_generic_inst_equal_full): Short-circuit
9033         equality check if we're comparing canonicalized MonoGenericInsts.
9034
9035 2007-11-23  Zoltan Varga  <vargaz@gmail.com>
9036
9037         * class.c (generic_array_methods): Call mono_class_setup_methods () before
9038         accessing class->methods.
9039
9040 2007-11-22  Dick Porter  <dick@ximian.com>
9041
9042         * threads.c: Ensure that the synch_cs is set before trying to use
9043         it.
9044
9045 Thu Nov 22 12:34:04 CET 2007 Paolo Molaro <lupus@ximian.com>
9046
9047         * profiler.c: r89126 broke the statistial profiler, unbreak.
9048
9049 2007-11-22  Martin Baulig  <martin@ximian.com>
9050
9051         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 66.
9052
9053         * mono-debug.c
9054         (mono_debug_debugger_version): Bump to 3.
9055         (mono_debug_init): Hook `mono_debugger_class_loaded_methods_func'
9056         -> mono_debugger_class_initialized().
9057
9058         * mono-debug-debugger.c
9059         (mono_debugger_add_type): Renamed into mono_debugger_class_initialized().
9060
9061         * class.c
9062         (mono_debugger_start_class_init_func): Removed.
9063         (mono_debugger_class_loaded_methods_func): Added.
9064         (mono_class_setup_methods): Call it here.
9065
9066 2007-11-22  Martin Baulig  <martin@ximian.com>
9067
9068         * mono-debug.c
9069         (mono_debug_add_delegate_trampoline): New public method.
9070         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_DELEGATE_TRAMPOLINE'.
9071
9072         * mono-debug.h
9073         (MonoSymbolTable): Added `global_data_table'.
9074         (MonoDebuggerTypeKind): Removed.
9075
9076 2007-11-21  Zoltan Varga  <vargaz@gmail.com>
9077
9078         * marshal.c (mono_marshal_get_generic_array_helper): Skip visibility checks for
9079         these methods.
9080
9081         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
9082         
9083 Tue Nov 20 23:10:41 CET 2007 Paolo Molaro <lupus@ximian.com>
9084
9085         * object.c: some fields don't have a valid rva: ignore them (bug #343083).
9086
9087 2007-11-20  Martin Baulig  <martin@ximian.com>
9088
9089         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 65.
9090
9091         * mono-debug-debugger.c
9092         (mono_debugger_insert_method_breakpoint): Moved here from debug-mini.c
9093         (mono_debugger_remove_breakpoint): Likewise.
9094         (mono_debugger_check_breakpoints): Likewise.
9095         (mono_debugger_register_class_init_callback): New public method.
9096         (mono_debugger_remove_class_init_callback): Likewise.
9097         (mono_debugger_add_type): Likewise.
9098
9099         * mono-debug-debugger.h
9100         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_CLASS_INITIALIZED'.
9101
9102 Tue Nov 20 20:54:12 CET 2007 Paolo Molaro <lupus@ximian.com>
9103
9104         * class.c: more interface implementations needed for the
9105         array enumerator (fixes bug #341112).
9106
9107 2007-11-18  Gert Driesen  <drieseng@users.sourceforge.net>
9108
9109         * icall.c: Renamed arguments for ves_icall_System_Enum_ToObject to
9110         fix ParamName of ArgumentNullExceptions.
9111
9112 2007-11-17  Miguel de Icaza  <miguel@novell.com>
9113
9114         * reflection.c (mono_reflection_encode_sighelper): Generate the
9115         modopts and modreqs.   I have a useless test that crashes monodis,
9116         but that shows the code working.
9117
9118 2007-11-17  Zoltan Varga  <vargaz@gmail.com>
9119
9120         * boehm-gc.c (create_allocator): Fix size calculation for the string allocator.
9121         (mono_gc_get_managed_allocator): Enable the string allocator on amd64.
9122
9123 2007-11-15  Dick Porter  <dick@ximian.com>
9124
9125         * threads.c (ves_icall_System_Threading_Thread_Join_internal):
9126         When joining a thread, it's the thread that's calling Join that
9127         gets WaitSleepJoin state not the target.  Fixes the standalone
9128         test case in bug 334740, and hopefully the whole bug too.
9129
9130 2007-11-15  Dick Porter  <dick@ximian.com>
9131
9132         * process.c: Read file version info from the files pointed at by
9133         process modules, not the current process.  Fixes bug 315969.
9134
9135         Use windows typedef names in some places to fix warnings on the
9136         windows build.
9137
9138 2007-11-15  Mark Probst  <mark.probst@gmail.com>
9139
9140         * image.c, metadata-internals.h: Added a generic_class_cache hash
9141         to MonoImage for looking up generic classes when sharing generics.
9142
9143 Thu Nov 15 16:11:30 CET 2007 Paolo Molaro <lupus@ximian.com>
9144
9145         * sgen-gc.c: warning cleanups.
9146
9147 2007-11-15  Zoltan Varga  <vargaz@gmail.com>
9148
9149         * icall.c (ves_icall_Type_GetPropertiesByName): Implement proper hiding of
9150         inherited properties.
9151
9152 2007-11-14  Mark Probst  <mark.probst@gmail.com>
9153
9154         * object.c, class-internals.h: Added more information to the
9155         runtime generic context.
9156
9157 2007-11-13  Zoltan Varga  <vargaz@gmail.com>
9158
9159         * marshal.c (mono_marshal_get_delegate_invoke): Take a delegate as argument
9160         instead of just the target method. Generalize the abstract method handling to
9161         handle any non-static method.
9162
9163         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
9164         mono_marshal_get_delegate_invoke () signature change.
9165
9166 2007-11-13  Mark Probst  <mark.probst@gmail.com>
9167
9168         * class.c, class-internals.h: Made
9169         mono_type_get_basic_type_from_generic () public.  Fixed member
9170         access check for shared generics.
9171
9172         * loader.c: Don't insert field into field cache if it's part of a
9173         non-inflated generic class.
9174
9175         * domain.c, domain-internals.h: The generic sharing context is now
9176         part of the jit info data structure.  Added two accessor
9177         functions.
9178
9179 2007-11-12  Zoltan Varga  <vargaz@gmail.com>
9180
9181         * marshal.c (mono_marshal_get_runtime_invoke): Create a non-shared wrapper for
9182         the array Get/Set/Address methods, since the JIT inlines them.
9183
9184         * metadata-internals.h (MonoImage): Add 'runtime_invoke_direct_cache'.
9185
9186         * image.c (mono_image_close): Free runtime_invoke_direct_cache.
9187         (mono_image_init): Initialize runtime_invoke_direct_cache.      
9188
9189         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
9190         mono_marshal_get_delegate_invoke signature change.
9191
9192         * marshal.c (mono_marshal_get_delegate_invoke): Receive the target_method as
9193         an additional argument. Add support for invoking abstract methods.
9194
9195         * metadata-internals.h (MonoImage): Add 'delegate_abstract_invoke_cache'.
9196
9197         * image.c (mono_image_close): Free delegate_abstract_invoke_cache.      
9198
9199 2007-11-09  Mark Probst  <mark.probst@gmail.com>
9200
9201         * class.c: Do field layout for open generic classes as well.
9202
9203 2007-11-09  Mark Probst  <mark.probst@gmail.com>
9204
9205         * gc.c, gc-internal.h: Don't finalize threadpool threads with
9206         other objects, because the threadpool is still around.  Put them
9207         in a list instead and after finalizing all other objects in the
9208         root domain shut down the thread pool and then finalize the
9209         threads.  Fixes bug #337383.
9210
9211         * threads.c, thread-types.h: New mono_thread_create_internal()
9212         function for marking a thread with the threadpool flag before it
9213         started.  Set synch_cs to NULL after freeing it.
9214
9215         * threadpool.c: Mark threadpool threads before they start.
9216
9217 Thu Nov 8 15:31:21 CET 2007 Paolo Molaro <lupus@ximian.com>
9218
9219         * reflection.h, reflection.c: don't export random functions
9220         and lazy load dbnull and missing objects.
9221
9222 2007-11-07  Jonathan Chambers <joncham@gmail.com>
9223
9224         * class.c: Initialize COM types if COM interfaces
9225         are present (not just COM classes).
9226         
9227         Code is contributed under MIT/X11 license.
9228
9229 2007-11-07  Massimiliano Mantione  <massi@ximian.com>
9230         * reflection.c:
9231         create_dynamic_mono_image: hook module profiler events (dynamic case).
9232         mono_image_basic_init: hook assembly profiler events (dynamic case).
9233
9234 2007-11-07  Massimiliano Mantione  <massi@ximian.com>
9235         * profiler.c:
9236         simple_appdomain_unload: completely terminate the profiler
9237         instead of only processing the statistical samples.
9238         simple_shutdown: make sure this is really called exactly once,
9239         even in multithreaded applications, and always listen to
9240         appdomain events.
9241         * gc.c (mono_domain_finalize): don't call mono_profiler_appdomain_event
9242         here, the "[un]load" functions will do it.
9243         Fixes bugs #333791 and #325261.
9244
9245 2007-11-07  Geoff Norton  <gnorton@novell.com>
9246
9247         * socket-io.c:  Use the configure defines for HAVE_SOCKADDR_IN(6)_SIN_LEN
9248         rather than depend on __APPLE__.
9249
9250 2007-11-07  Mark Probst  <mark.probst@gmail.com>
9251
9252         * icall.c: Safety checks in InitializeArray.  Fixes bug #324535.
9253
9254 2007-11-06  Sebastien Pouliot  <sebastien@ximian.com> 
9255
9256         * object.c: Fix mono_string_to_utf8 to handle NULL values inside the
9257         UTF16 MonoString. Fix the crash from bug #335488
9258
9259 2007-11-06  Sebastien Pouliot  <sebastien@ximian.com>
9260
9261         * marshal.c: Correct (for non-Win32 OS) length != size in 
9262         mono_string_from_bstr. Fix #339530.
9263
9264 2007-11-06  Geoff Norton  <gnorton@novell.com>
9265
9266         * socket-io.c: Apple requires sin(6)_len to be set for getnameinfo
9267         to succeed
9268
9269 2007-11-05  Kornél Pál  <kornelpal@gmail.com>
9270
9271         * process.c: Added run-time GetProcessId API detection for Windows.
9272
9273 2007-11-04  Miguel de Icaza  <miguel@novell.com>
9274
9275         * reflection.c  (mono_param_get_objects): If a parameter has the
9276         attribute [System.Runtime.InteropServices.Optional] we should
9277         set the DefaultValue of the ParameterInfo to be
9278         System.Reflection.Missing instead of DBNull.
9279
9280         See bug #339013.
9281
9282         (mono_get_reflection_missing_object): New method,
9283         returns the System.Reflection.Missing.Value singleton instance.
9284
9285 2007-11-03  Atsushi Enomoto  <atsushi@ximian.com>
9286
9287         * culture-info-table.h : regenerated.
9288
9289 2007-11-02  Jonathan Chambers <joncham@gmail.com>
9290
9291         * icall.c: Use GetEnvironmentStrings on windows
9292         so we are using the same environment block as 
9293         GetEnvironmentVariable/SetEnvironmentVariable. Fixes
9294         #333740.
9295         
9296         Code is contributed under MIT/X11 license.
9297
9298 2007-10-31  Martin Baulig  <martin@ximian.com>
9299
9300         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 64.
9301
9302         * mono-debug-debugger.h
9303         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_TRAMPOLINE'.
9304
9305 2007-10-30  Zoltan Varga  <vargaz@gmail.com>
9306
9307         * reflection.c (mono_custom_attrs_from_class): Add support for dynamic inflated 
9308         classes.
9309
9310 2007-10-30  Atsushi Enomoto  <atsushi@ximian.com>
9311
9312         * culture-info-table.h : regenerated.
9313
9314 2007-10-30  Robert Jordan  <robertj@gmx.net>
9315
9316         * icall-def.h, icall.c:
9317         Add ves_icall_Remoting_RemotingServices_GetVirtualMethod ().
9318
9319         Code is contributed under MIT/X11 license.
9320
9321 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
9322
9323         * class.c (mono_class_setup_vtable): Find the inflated methods in the
9324         inflated class instead of inflating them again.
9325         
9326         * class.c (mono_class_setup_vtable): Inflate the override methods in the 
9327         dynamic case.
9328
9329         * class.c (mono_generic_class_get_class): Set klass->property.count as well.
9330         Call setup_supertypes () after klass->parent is set.
9331         (mono_class_setup_properties): Enable this to work on dynamic generic classes.
9332
9333         * reflection.c (mono_type_get_object): Only return a MonoGenericClass object
9334         for inflated instances of not yet created dynamic generic classes.
9335         (ctorbuilder_to_mono_method): Handle the case when this is called multiple
9336         times from inflated_method.
9337         (methodbuilder_to_mono_method): Ditto.
9338
9339 Mon Oct 29 21:02:53 CET 2007 Paolo Molaro <lupus@ximian.com>
9340
9341         * gc.c: code cleanup and removed old untested option of not creating the
9342         finalizer thread.
9343
9344 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
9345
9346         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Avoid
9347         creating a jump trampoline for dynamic methods.
9348
9349 2007-10-29 Rodrigo Kumpera <rkumpera@novell.com>
9350
9351         * reflection.c (mono_image_create_token): Correctly encode methods and constructors of
9352         generic TypeBuilders when called from another method of the same type (bug #335131).
9353
9354
9355 2007-10-27  Zoltan Varga  <vargaz@gmail.com>
9356
9357         * reflection.c (methodbuilder_to_mono_method): Revert the last change as it
9358         doesn't seem to work perfectly.
9359         
9360         * reflection.c (ctorbuilder_to_mono_method): Handle the case when this is
9361         called multiple times.
9362         (methodbuilder_to_mono_method): Ditto.
9363         (resolve_object): Inflate FieldBuilder's.
9364
9365 Fri Oct 26 19:38:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
9366
9367         * string-icalls.c, string-icalls.h, appdomain.c: patch from
9368         Tyler Larson <mono-devel@tlarson.com> to fix the handling of
9369         RemoveEmptyEntries in the string.Split implementation (bug #322375).
9370
9371 2007-10-26  Dick Porter  <dick@ximian.com>
9372
9373         * appdomain.c (MONO_CORLIB_VERSION): Bump version because of
9374         Thread initialisation changes
9375
9376 2007-10-26 Rodrigo Kumpera <rkumpera@novell.com>
9377
9378         * verify.c: fix compatibility check between arrays and System.Array
9379
9380 2007-10-26  Zoltan Varga  <vargaz@gmail.com>
9381
9382         * reflection.c (mono_reflection_get_custom_attrs_info): Handle MonoGenericClass
9383         too. Fixes #336999.
9384
9385 2007-10-25  Zoltan Varga  <vargaz@gmail.com>
9386
9387         * object.c (mono_value_box): Use typed allocation here.
9388
9389 2007-10-23  Zoltan Varga  <vargaz@gmail.com>
9390
9391         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Create a jump
9392         trampoline instead of compiling the method right away.
9393
9394         * class-internals.h object.c: Add a JIT callback to create a jump trampoline.
9395
9396 2007-10-21  Zoltan Varga  <vargaz@gmail.com>
9397
9398         * class.c (mono_generic_class_get_class): Avoid setting klass->size_inited and
9399         related fields for dynamic classes. Fixes #334493.
9400
9401 2007-10-20  Zoltan Varga  <vargaz@gmail.com>
9402
9403         * class.c (mono_generic_class_get_class): Set klass->field.count as well.
9404         
9405         * class.c (mono_class_layout_fields): Use 1 instead of TRUE for consistency.
9406
9407         * class.c (mono_class_layout_fields): Set size_inited for generic classes as well.
9408         (mono_class_setup_vtable): Obtain overrides for dynamic generic classes correctly.
9409
9410         * class.c (mono_class_setup_methods): Handle dynamic inflated classes correctly.
9411
9412         * reflection.c (create_generic_typespec): Initialize klass->generic_container
9413         if needed.
9414         (reflection_methodbuilder_to_mono_method): Set container->is_method to TRUE.
9415
9416 2007-10-18  Jonathan Chambers <joncham@gmail.com>
9417
9418         * marshal.c: Use correct key when removing item
9419         from ccw_hash.
9420         
9421         Code is contributed under MIT/X11 license.
9422
9423 2007-10-17  William Holmes  <billholmes54@gmail.com>
9424
9425         *marshal.c: Adding a case to marshal booleans to U1
9426
9427         Code is contributed under MIT/X11 license.
9428
9429 2007-10-18  Zoltan Varga  <vargaz@gmail.com>
9430
9431         * class.c (mono_class_from_name): Search the modules compromising dynamic
9432         assemblies. Fixes #331601.
9433
9434 2007-10-16  Zoltan Varga  <vargaz@gmail.com>
9435
9436         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Throw an
9437         exception if the type name contains an assembly component. Fixes #334203.
9438
9439         * reflection.c (mono_reflection_get_type_with_rootimage): Search all the
9440         modules inside dynamic assemblies. Fixes #334200.
9441         
9442         * reflection.c: Set image->public_key and image->public_key_length;
9443
9444         * metadata-internals.h (MonoDynamicImage): Add public_key and public_key_len
9445         fields.
9446
9447         * image.c (mono_image_get_public_key): Handle dynamic assemblies. Fixes #334173.        
9448         
9449 2007-10-16  Mark Probst  <mark.probst@gmail.com>
9450
9451         * metadata.c: Implemented correct comparing of generic classes.
9452         An inflated generic class can be equal to a non-inflated one if it
9453         is inflated with generic type variables as type arguments.  Fixes
9454         bug #333798.
9455
9456 2007-10-15  Dick Porter  <dick@ximian.com>
9457
9458         * monitor.c (mono_monitor_try_enter_internal): Set thread state to
9459         WaitSleepJoin while it is waiting to acquire a lock.  Fixes bug
9460         81646.
9461
9462         * threads.c: Turn the thread synch_lock into a CRITICAL_SECTION,
9463         instead of a monitor lock.  This means that monitor_try_enter and
9464         co can set the thread state safely.
9465         (ves_icall_System_Threading_Thread_Interrupt_internal): Always set
9466         thread_interrupt_requested, so interrupt actually works.
9467
9468         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal,
9469         ves_icall_System_Net_Sockets_Socket_Select_internal): Use thread
9470         state accessor function
9471
9472 2007-10-15  Martin Baulig  <martin@ximian.com>
9473
9474         * mono-debug.h
9475         (MONO_DEBUGGER_VERSION): Bump to 63 to make it impossible to use
9476         the debugger with the current runtime.
9477
9478 Mon Oct 15 10:20:56 CEST 2007 Paolo Molaro <lupus@ximian.com>
9479
9480         * object.c, object-internals.h: added the ability to set a single
9481         trampoline for all the slots in a vtable.
9482
9483 Fri Oct 12 17:50:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
9484
9485         * marshal.c: deal with a possible race condition during multicast
9486         delegate invocation.
9487
9488 Fri Oct 12 13:31:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
9489
9490         * class.c: ensure value type methods don't have the synchronized
9491         flag set.
9492
9493 Fri Oct 12 08:10:59 CEST 2007 Paolo Molaro <lupus@ximian.com>
9494
9495         * string-icalls.c, string-icalls.h: reverted unapproved patch that
9496         breaks the build.
9497
9498 2007-10-11  Joel Reed  <joelwreed@comcast.com>
9499
9500         * string-icalls.c, string-icalls.h: modify System_String_InternalSplit
9501         to take an options parameter so that empty entries can be removed during
9502         the split procedure. Patch from: Tyler Larson <mono-devel@tlarson.com>
9503
9504 Thu Oct 11 20:16:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
9505
9506         * marshal.c: make sure we don't store the signature from a dynamic
9507         method into the runtime invoke cache (bug #327189).
9508
9509 Thu Oct 11 18:22:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
9510
9511         * marshal.c: make sure the wrapper methods are properly initialized.
9512
9513 2007-10-11  Mark Probst  <mark.probst@gmail.com>
9514
9515         * metadata.c, metadata-internals.h: Generalized
9516         mono_type_stack_size() to mono_type_stack_size_internal() which
9517         takes an additional argument specifying whether it allows open
9518         types.
9519
9520 2007-10-10  Rodrigo Kumpera  <rkumpera@novell.com>
9521
9522         * verify.c (do_invoke_method): handle typedbyref params
9523         correctly and check for unverifiable return values.
9524
9525         * verify.c (do_newobj): fix a warning.
9526
9527 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
9528
9529         * verify.c: don't tread typedbyref as allways unverifable,
9530         so uses, like (ld/st)loc.0 are valid. verify for the cases
9531         that it matters, like boxing related operations.
9532
9533 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
9534
9535         * verify.c: add verification of the newobj opcode. verification
9536         of delegate instantation still missing due ldftn and virldftn not
9537         pushing the function type on stack
9538
9539 2007-10-08  Mark Probst  <mark.probst@gmail.com>
9540
9541         * class-internals.h: Runtime generic context data structure
9542         definition.
9543
9544         * object.c: Initialization of runtime generic context at runtime
9545         vtable creation time.
9546
9547 2007-10-08  Massimiliano Mantione  <massi@ximian.com>
9548         * class.c (mono_class_create_from_typedef,
9549         mono_class_from_generic_parameter, mono_ptr_class_get,
9550         mono_fnptr_class_get, mono_bounded_array_class_get)
9551         * domain.c (mono_domain_create, mono_domain_free)
9552         * assembly.c (mono_assembly_load_from_full, mono_assembly_close)
9553         * image.c (do_mono_image_load, mono_image_close):
9554         Hooked up load-unload profiler events.
9555
9556 Mon Oct 8 11:38:04 CEST 2007 Paolo Molaro <lupus@ximian.com>
9557
9558         * domain.c: track statistics about the actual amount of native code
9559         allocated.
9560
9561 Sat Oct 6 10:01:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
9562
9563         * class.c: the valuetype enumerators don't have the additional
9564         supertypes interfaces.
9565
9566 Fri Oct 5 20:33:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
9567
9568         * class.c: need more interfaces setup for the IEnumerator<T>
9569         object created for arrays (tests/ienumerator-interfaces.2.cs).
9570
9571 2007-10-05  Zoltan Varga  <vargaz@gmail.com>
9572
9573         * class.c (mono_ldtoken): Handle methodspec tokens as well. Fixes #331097.
9574
9575 2007-10-05  Alp Toker  <alp@atoker.com>
9576
9577         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
9578         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
9579         #315863.
9580
9581 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
9582
9583         * verify.c (verify_type_compatibility_full): verification of
9584         compatibility improved, validates correctly non-strict checks between
9585         native int and I4 types different than (unsigned)int32.
9586
9587         * verify.c (do_store_indirect): added, do all verification of
9588         ldind.X opcodes. 
9589
9590         * verify.c (get_load_indirect_mono_type): renamed to
9591         get_indirect_op_mono_type, as it now returns the MonoType for 
9592         ldind.X and stind.X opcodes.
9593
9594 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
9595
9596         * reflection.c: Fix the encoding of generic type definition for
9597         TypeBuilders.
9598
9599         * reflection.c (mono_image_typedef_or_ref_full: do the same thing as
9600         mono_image_typedef_or_ref but allows to specify if typespec lookups should
9601         be made. Typespec check is done prior to typeref cache lookup.
9602
9603         * reflection.c (mono_image_typedef_or_ref): now just delegate to
9604         mono_image_typedef_or_ref_full.
9605
9606         * reflection.c (encode_generic_class): encode the generic class
9607         directly instead of calling encode_type.
9608
9609         * reflection.c (encode_type): encode the generic type definition
9610         MonoClass as a generic instantiation.
9611
9612         * reflection.c (create_typespec): cache typespec tokens in
9613         the assembly->typespec cache. Don't create typespec for a generic
9614         instance MonoClass. Create typespec for the generic type defintion.
9615
9616         * reflection.c (create_generic_typespec): encode the generic
9617         class directly instead of calling encode_type.
9618
9619         * reflection.c (mono_image_create_token): encode the generic
9620         type definition not using a typespec for MonoType instances.
9621
9622
9623 2007-10-04  Raja R Harinath  <rharinath@novell.com>
9624
9625         Fix #328812
9626         * class.c (mono_image_init_name_cache): Don't return nested
9627         'protected internal' classes.
9628         (mono_class_from_name_case): Likewise.
9629
9630 2007-10-04  Atsushi Enomoto  <atsushi@ximian.com>
9631
9632         * icall-def.h, icall.c : get_bundled_machine_config() is now the
9633           common function used by both DefaultConfig in System.dll and
9634           InternalConfigurationHost in System.Configuration.dll.
9635
9636 Wed Oct 3 17:26:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
9637
9638         * class.c: automatically add to vectors only a few essential explicit
9639         generic interfaces. The rest of the interfaces that arrays should
9640         provide are currently implicitly added (but still not lazily, see the
9641         design in the discussion of bug#325495 for the details of what is
9642         needed for that). Additionally, implicit interfaces are assigned the
9643         same vtable slot as the explicit interfaces (as they are compatible):
9644         this enables huge memory savings since we don't need to instantiate
9645         as many memthods and as large vtables anymore. Also, Since
9646         GetEnumerator<T> returns an instance of a type that is required to
9647         support a similarly large set of interfaces as arrays, we add
9648         implicit interfaces and interface offset sharing support to those
9649         types, too. This change adds all the required interfaces so that
9650         the anonarray.cs test case in the bug report works (we don't add
9651         all the interfaces to arrays of arrays 3-level deep and more because
9652         of the memory requirements explained in the bug and since they are much
9653         less common: the lazy-loading support will enabled them to work, too).
9654
9655 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
9656
9657         * verify.c (merge_stacks): major clean up, all type compatibility
9658         checks are done by verify_type_compatibility. This fix my earlier lack
9659         of understanding of the CLR type system and merge_stacks no longer looks
9660         scary.
9661
9662         * verify.c: fixed some bad spelling.
9663
9664 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
9665
9666         * verify.c (mono_type_from_stack_slot): added. returns the MonoType for
9667         a given stack slock.
9668         
9669         * verify.c: killed verify_type_compat in favor of verify_type_compatibility and
9670         verify_type_compatibility_full. This removed a near indentical function and fixed
9671         handling of Int32 and IntPtr across all opcodes.
9672
9673 Tue Oct 2 15:24:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
9674
9675         * class.c: only vectors have the additional generic interfaces.
9676
9677 2007-10-01  Jonathan Chambers <joncham@gmail.com>
9678
9679         * mono-config.c: Use g_strcasecmp instead of
9680         strcasecmp like everywhere else to fix
9681         compilation with MSVC.
9682         
9683         Code is contributed under MIT/X11 license.
9684
9685 Mon Oct 1 14:39:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
9686
9687         * object.c, object-internals.h: refactored the IMT code to enable
9688         building a single slot at a time and lazily creating the IMT trampolines
9689         and thunks.
9690
9691 2007-09-29  Zoltan Varga  <vargaz@gmail.com>
9692
9693         * loader.c (inflate_generic_signature): Allocate inflated signatures from the heap.
9694
9695         * metadata.c (mono_metadata_free_inflated_signature): Free the signature itself too.
9696         Fixes #328501.
9697         
9698 2007-09-29  Raja R Harinath  <harinath@gmail.com>
9699
9700         * loader.c (method_from_methodspec): Rearrange to avoid
9701         un-necessary exposition.  Don't assert out if the method's
9702         declaring type is a generic type definition.
9703
9704 2007-09-28  Martin Baulig  <martin@ximian.com>
9705
9706         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 61.
9707
9708 Fri Sep 28 20:15:47 CEST 2007 Paolo Molaro <lupus@ximian.com>
9709
9710         * class-internals.h: optimize field layout of MonoClass to
9711         requires less cachelines at runtime and save a few bytes on 64 bit
9712         systems.
9713
9714 2007-09-28  Jb Evain  <jbevain@novell.com>
9715
9716         * reflection.c: when encoding type names in custom attributes,
9717         if the type is a closed generic type, its generic arguments
9718         have to be serialized as AssemblyQualifiedName, so that when
9719         they are deserialized, it's possible to re-create them properly.
9720         Fixes #329450.
9721
9722
9723 Fri Sep 28 19:19:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
9724
9725         * object.c, class-internals.h: added delegate-creation counter.
9726
9727 Fri Sep 28 18:07:53 CEST 2007 Paolo Molaro <lupus@ximian.com>
9728
9729         * class.c: cleanup of the code that synthetizes interfaces for
9730         arrays in 2.0: saves quit a bit of corlib mempool memory.
9731         Code to fix bug #325495 ifdeffed out for now until the issues
9732         with memory usage and O(n^2) behaviour are fixed.
9733
9734 Fri Sep 28 17:19:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
9735
9736         * marshal.c: when possible, do not duplicate the name of the methods
9737         in the method builder and in the generated MonoMethod.
9738
9739 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
9740         * verify.c: added support for type checking ldind_* opcodes.
9741
9742 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
9743
9744         * class-internals.h (struct _MonoGenericClass): new field is_tb_open
9745         which is used to distinguish the fully open instantiation of a TypeBuilder
9746         with the rest. This temporary hack is required to restore the property that
9747         the fully open instantiation is the same type of the generic type definition.
9748
9749         * class-internals.h (mono_generic_class_is_generic_type_definition):
9750         new function as part of the internal API.
9751
9752         * class.c (inflate_generic_type): return NULL when the generic inst is
9753         fully open. The fully open generic type is now the same as the generic type
9754         definition for non TypeBuilder types.
9755
9756         * class.c (mono_generic_class_get_class): removed assert since it is
9757         no longer valid, gklass->cached_class can point to the generic type definition.
9758
9759         * class.c (mono_generic_class_is_generic_type_definition): new.
9760
9761         * metadata.c (mono_generic_class_hash): added is_tb_open field
9762         to the hash calculation.
9763
9764         * metadata.c (free_generic_class): if the generic class is associated
9765         with the generic type definition, its field will come from the mempool and
9766         must not be freed.
9767
9768         * metadata.c (mono_metadata_is_type_builder_generic_type_definition):
9769         new, this function identifies the corner case of a TypeBuilder fully open
9770         instantiation.
9771
9772         * metadata.c (mono_metadata_lookup_generic_class): use is_tb_open
9773         for lookup. Set gclass->cached_class to be the container class in case of
9774         the fully open instantiation of non TypeBuilder types.
9775
9776         * metadata.c (_mono_metadata_generic_class_equal): use is_tb_open
9777         to compare generic classes.
9778
9779         * reflection.c (method_encode_methodspec): remove assert that
9780         no longer is valid.
9781
9782         * reflection.c (mono_reflection_generic_class_initialize): add
9783         an aditional assert to ensure the proper type is used.
9784
9785 2007-09-26  Rodrigo Kumpera  <rkumpera@novell.com>
9786
9787         * verify.c: disabled all debug spew by default, define MONO_VERIFIER_DEBUG
9788         to enjoy it.
9789
9790 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
9791
9792         * verify.c (push_arg): Fixed support for ldarga
9793         * verify.c (set_stack_value): Removed superfluous parameter, fixed the
9794         MonoType used as first arg in case of instance calls.
9795
9796 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
9797
9798         * verify.c: Support for verifying VAR and MVAR types, 
9799
9800 2007-09-25  Zoltan Varga  <vargaz@gmail.com>
9801
9802         * icall.c (ves_icall_get_property_info): Set the reflected type of the
9803         accessors correctly.
9804
9805 Tue Sep 25 14:56:03 CEST 2007 Paolo Molaro <lupus@ximian.com>
9806
9807         * threads.c: support OSX and other systems in
9808         mono_thread_get_stack_bounds (bug #328026).
9809
9810 2007-09-25  Martin Baulig  <martin@ximian.com>
9811
9812         * mono-debug.h
9813         (MonoDebugVarInfo): Replace `MonoClass *klass' with `MonoType *type'.
9814
9815 2007-09-24  Martin Baulig  <martin@ximian.com>
9816
9817         * mono-debug.h
9818         (MonoDebugClassEntry): Moved the definition of this struct into
9819         mono-debug.c to make it private.
9820
9821         * mono-debug.c
9822         (MonoDebugClassEntry): Removed `symfile_id'; since we now use one
9823         type table per symbol file, we don't need to store the symfile id
9824         any longer.
9825
9826 2007-09-24  Martin Baulig  <martin@ximian.com>
9827
9828         Create one type table per symbol file, since a `MonoClass *' gets
9829         invalid when its image is unloaded.
9830
9831         * mono-debug.h (MonoSymbolTable): Removed `type_table'.
9832         (MonoDebugHandle): Added `type_table'.
9833
9834 Mon Sep 24 17:25:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
9835
9836         * mempool.c, mempool.h: added mono_mempool_new_size () API
9837         to be able to specify a smaller initial size for the pool.
9838         Adjusted the code to slowly increase pool size before using
9839         the previous default size.
9840         * image.c: use a small initial size for image mempools.
9841
9842 2007-09-23  Zoltan Varga  <vargaz@gmail.com>
9843
9844         * marshal.c (emit_marshal_array): Generate valid IL for byref array case.
9845         Fixes ##320990.
9846
9847         * icall.c (ves_icall_System_Reflection_Assembly_get_ManifestModuleInternal): 
9848         Rename this to ves_icall_System_Reflection_Assembly_GetManifestModuleInternal.
9849
9850 2007-09-22  Zoltan Varga  <vargaz@gmail.com>
9851
9852         * metadata.c (mono_type_create_from_typespec): Remove an invalid
9853         free. Fixes #327438.
9854
9855 2007-09-21  Raja R Harinath  <harinath@gmail.com>
9856
9857         * metadata.c (type_in_image) <MONO_TYPE_SZARRAY>: Handle arrays of
9858         generic instantiations, etc.
9859         <MONO_TYPE_ARRAY>: Likewise.
9860
9861 2007-09-21  Martin Baulig  <martin@ximian.com>
9862
9863         * mono-debug.h (MonoSymbolFilePriv, MonoDebugHandlePriv): Removed;
9864         these structs were never defined.
9865         (MonoDebugHandle): Removed the `_priv' field, it was never used.
9866
9867 2007-09-21  Martin Baulig  <martin@ximian.com>
9868
9869         * mono-debug.h (MonoDebugVarInfo): Add `MonoClass *klass'.
9870
9871 Fri Sep 21 14:39:45 CEST 2007 Paolo Molaro <lupus@ximian.com>
9872
9873         * image.c: removed the guid hash tables: we can get the same info
9874         without the additional memory usage hit (partially fixes also bug #327052).
9875
9876 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
9877
9878         * profiler.h, profiler-private.h, profiler.c: add a new profiler
9879         event to handle unloading methods. After the event is called, the
9880         corresponding MonoMethod* must be considered invalid.
9881         * loader.c (mono_free_method): call the new mono_profiler_method_free
9882         event.
9883
9884 2007-09-20  Mark Probst  <mark.probst@gmail.com>
9885
9886         * domain-internals.h: New flag in MonoJitInfo which marks shared
9887         generic methods.  New hash table (shared_generics_hash) in
9888         MonoDomain to keep track of shared generic methods.  Prototypes
9889         for functions to register and lookup shared generic methods.
9890
9891         * domain.c: Support for registering and looking up shared generic
9892         methods via a hash table (shared_generics_hash) in MonoDomain.
9893
9894         * class-internals.h: New exception to signal failure of shared
9895         compilation of a generic method.  New counters for generics
9896         sharing in MonoStats.
9897
9898 Thu Sep 20 16:59:36 CEST 2007 Paolo Molaro <lupus@ximian.com>
9899
9900         * image.c, metadata-internals.h: don't keep a file descriptor open
9901         for loaded assemblies (bug#325988).
9902
9903 2007-09-19  Raja R Harinath  <rharinath@novell.com>
9904
9905         * metadata.c (signature_in_image): New.  Carve out of type_in_image.
9906         (ginst_in_image, gclass_in_image): Simplify.  Change signature to
9907         use the corresponding datatypes.
9908         (type_in_image): Update to changes.
9909         (CleanForImageUserData): Simplify.
9910         (steal_gclass_in_image): Carved out of old 'gclass_in_image'.
9911         Avoid quadratic behaviour in handling the "stolen" list by
9912         separating the filter predicate out, and by prepending the stolen
9913         items rather than appending them.
9914         (steal_ginst_in_image): Likewise.
9915         (mono_metadata_clean_for_image): Update to changes.
9916
9917 2007-09-19  Martin Baulig  <martin@ximian.com>
9918
9919         * domain.c (mono_cleanup): Call mono_debug_cleanup() here.
9920
9921 2007-09-19  Martin Baulig  <martin@ximian.com>
9922
9923         * mono-debug.c (mono_debug_cleanup): Don't call
9924         mono_debugger_cleanup(); this is now called earlier from mini_cleanup().
9925
9926 2007-09-19  Raja R Harinath  <harinath@gmail.com>
9927
9928         Fix crash on 'make run-test' in mcs/errors
9929         * metadata.c (type_in_image): New.  Carve out of ginst_in_image.
9930         Avoid more potential allocations in mono_class_from_mono_type.
9931         (ginst_in_image): Update to changes.
9932         (gclass_in_image): Rearrange slightly.
9933
9934 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
9935
9936         * class.c (mono_class_init): Move the code that sets up class->methods to 
9937         mono_class_setup_methods () for inflated generic classes too. Ditto for properties.
9938
9939         * metadata.c (mono_metadata_get_inflated_signature): New function to return a
9940         canonical instance of an inflated generic signature.
9941         (mono_type_create_from_typespec): Remove an invalid free.
9942
9943         * loader.c (mono_method_get_signature_full): Use mono_metadata_get_inflated_signature.  
9944
9945 2007-09-18  Marek Habersack  <mhabersack@novell.com>
9946
9947         * domain-internals.h: added a declaration of the
9948         mono_assembly_load_full_nosearch internal function.
9949
9950         * assembly.c (mono_assembly_load_with_partial_name): use
9951         mono_try_assembly_resolve return value properly.
9952         (mono_assembly_load_full_nosearch): copied the function body from
9953         mono_assembly_load_full, without the code to invoke assembly
9954         search hooks.
9955         (mono_assembly_load_full): calls the above new function and if the
9956         assembly is not resolved, invokes the search hooks.
9957
9958         * appdomain.c (mono_runtime_init): restore the global postload
9959         assembly search handlers.
9960
9961 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
9962
9963         * class.c (mono_class_init): Make sure class->methods and class->properties
9964         are never NULL in the generics case.
9965
9966         * metadata.c (free_generic_class): Enable this again, skip the dynamic case.
9967
9968 2007-09-17  Zoltan Varga  <vargaz@gmail.com>
9969
9970         * metadata.c (free_generic_class): Disable some code to fix the build.
9971
9972         * domain.c (mono_cleanup): Fix a crash introduced by a previous patch.
9973
9974         * marshal.c (mono_marshal_get_xappdomain_dispatch): Allocate a piece of data
9975         from the image mempool.
9976
9977         * metadata.c (free_generic_class): Free more data from the inflated class.
9978
9979         * class.c (mono_class_from_generic_parameter): Allocate memory from the mempool.
9980
9981         * metadata.c (mono_metadata_parse_generic_param): Allocate memory from the image
9982         mempool.
9983         (mono_type_create_from_typespec): Ditto.
9984
9985         * domain.c (get_runtimes_from_exe): Add an out parameter to return the opened
9986         MonoImage to the caller.
9987         (mono_init_internal): Save the opened image in a global variable.
9988         (mono_cleanup): Close the image opened in get_runtimes_from_exe.
9989
9990         * reflection.c (resolve_object): Fix a leak.
9991
9992         * metadata.c: Fix the freeing of data in the generics caches.
9993         
9994         * metadata.c (free_generic_inst): Comment this out to fix the build.
9995         (free_generic_class): Ditto.
9996
9997         * metadata.c: Free cached generic methods, instantinations and classes when
9998         they are removed from the caches.
9999         (mono_metadata_free_type): Free the type itself.
10000
10001         * class.c: Free the result of mono_class_inflate_generic_type () in a few
10002         places.
10003
10004 Mon Sep 17 16:14:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
10005
10006         * boehm-gc.c: restrict managed allocs to __thread supporting
10007         architectures.
10008
10009 2007-09-16  Zoltan Varga  <vargaz@gmail.com>
10010
10011         * class.c (mono_class_inflate_generic_type): Add a comment describing memory ownership.
10012         (mono_generic_class_get_class): Fix a leak.
10013
10014         * metadata.c (do_mono_metadata_parse_type): Remove an unneccesary call to
10015         mono_metadata_free_type ().
10016         (mono_metadata_inflate_generic_inst): Fix a leak.
10017
10018 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
10019
10020         * mono-debug.c (free_header_data): Fix a leak missed earlier.
10021
10022         * metadata.c (mono_metadata_parse_array_full): Allocate memory from the image
10023         mempool.
10024
10025         * mono-debug.c (mono_debug_close_image): Fix call to 
10026         g_hash_table_remove ().
10027
10028 Fri Sep 14 19:36:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
10029
10030         * icall-def.h: redirect all the string ctor to the managed
10031         CreateString () methods.
10032         * string-icalls.c, string-icalls.h: removed dead code for string
10033         ctors and icalls.
10034
10035 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
10036
10037         * mono-debug.c: Fix memory leaks.
10038
10039 2007-09-14  Jonathan Chambers <joncham@gmail.com>
10040
10041         * threads-types.h: Implement mono_hazard_pointer_set and 
10042         mono_hazard_pointer_clear macros using do/while(0) to fix
10043         compilation with MSVC.
10044         
10045         Code is contributed under MIT/X11 license.
10046
10047 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
10048
10049         * gc.c (ves_icall_System_GCHandle_GetAddrOfPinnedObject): Use a return value of
10050         -2 to communicate to managed code that the handle is not pinned. Fixes #82848.
10051
10052 Fri Sep 14 14:04:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
10053
10054         * icall-def.h, string-icalls.c: get rid of old, no longer used, string
10055         icalls.
10056
10057 Fri Sep 14 11:41:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
10058
10059         * boehm-gc.c, gc-internal.h, object.c: allow strings to be
10060         managed-code allocated as well.
10061
10062 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
10063
10064         * class.c (mono_class_is_assignable_from): Add support for generic variance.
10065
10066 Thu Sep 13 11:55:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
10067
10068         * boehm-gc.c: fixed the build after the AOT changes.
10069
10070 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
10071
10072         * wrapper-types.h: Add an ALLOC wrapper type.
10073
10074         * gc-internals.h boehm-gc.c null-gc.c sgen-gc.c: Add functions needed by AOT to
10075         reference managed allocator methods.
10076
10077 2007-09-12  Marek Safar  <marek.safar@gmail.com>
10078
10079         * icall.c (ves_icall_MonoType_GetGenericArguments): Create an instance
10080         of Type array and not MonoType, a fix suggested by Hari.
10081         
10082 2007-09-12  Jonathan Chambers <joncham@gmail.com>
10083
10084         * domain-internals.h, domain.c : Remove delegate_invoke_impl_with_target_hash
10085         and delegate_invoke_impl_no_target_hash from _MonoDomain struct.
10086         
10087         Code is contributed under MIT/X11 license.
10088
10089 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
10090
10091         * domain.c, object.c, mono-config.c, object-internals.h: Fixed  #82416.
10092
10093 2007-09-12  Marek Habersack  <mhabersack@novell.com>
10094
10095         * image.c (do_mono_image_open): if assembly file fails to open and
10096         MONO_IOMAP is in effect, try to find the path in a
10097         case-insensitive way.
10098
10099         * appdomain.c (mono_runtime_init): do not install postload hooks -
10100         tests show that MS.NET doesn't use anything of that sort to
10101         trigger the AppDomain.AssemblyResolve event.
10102         (mono_try_assembly_resolve): renamed from try_assembly_resolve and
10103         made non-static.
10104         (mono_runtime_init): init portability helpers here.
10105
10106         * assembly.c (mono_assembly_load_with_partial_name): if other   
10107         attempts fail, trigger the AppDomain.AssemblyResolve event handler
10108         to resolve the assembly.
10109
10110         * domain-internals.h: added mono_try_assembly_resolve and marked
10111         it as internal.
10112
10113 2007-09-11  Jb Evain  <jbevain@novell.com>
10114
10115         * object-internals.h (MonoReflectionDynamicMethod): add
10116         a `MonoReflectionType *owner` field. The owner is used
10117         * reflection.c:
10118         (mono_reflection_create_dynamic_method): use the owner of the dynamic
10119         method as the class declaring the dynamic method.
10120         (reflection_methodbuilder_from_dynamic_method): copy the owner of the
10121         dynamic method to the declaring type of the methodbuilder.
10122
10123 2007-09-11  Mark Probst  <mark.probst@gmail.com>
10124
10125         * icall.c (ves_icall_InternalInvoke): Enforce CoreCLR security
10126         rules for calling methods via reflection.
10127
10128 2007-09-11  Zoltan Varga  <vargaz@gmail.com>
10129
10130         * reflection.c (resolve_object): Add support for MonoGenericClass. 
10131         Inflate MonoType's.
10132
10133 Tue Sep 11 16:08:08 CEST 2007 Paolo Molaro <lupus@ximian.com>
10134
10135         * gc-internal.h, boehm-gc.c, null-gc.c, sgen-gc.c: allow the GC to
10136         provide a managed method that does fast allocations without needing
10137         a managed->unmanaged transition. Boehm GC implementation currently
10138         enabled for ptrfree objects on sane architectures.
10139
10140 Tue Sep 11 16:00:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
10141
10142         * marshal.c, marshal.h: exported a couple of useful functions and
10143         added mono_mb_get_label () to easily handle backward branches.
10144
10145 2007-09-10  Zoltan Varga  <vargaz@gmail.com>
10146
10147         * reflection.c (resolve_object): Inflate generic methods. Fixes #82782.
10148
10149 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
10150
10151         * loader.c (find_method): Fixed the regression introduced while
10152         fixing bug #81466.
10153
10154 2007-09-09  Zoltan Varga  <vargaz@gmail.com>
10155
10156         * class.c (mono_lookup_dynamic_token_class): Pass along the context here as
10157         well.
10158         
10159         * class.c loader.c metadata.c object.c class-internals.h object-internals.h
10160         icall.c reflection.c: Pass a MonoGenericContext argument to 
10161         mono_lookup_dynamic_token ().
10162
10163         * reflection.c (resolve_object): Handle GenericTypeParameterBuilder. Fixes
10164         #82744.
10165         
10166 2007-09-09  Robert Jordan  <robertj@gmx.net>
10167
10168         * object.c (mono_class_proxy_vtable): Don't create remoting trampolines
10169         for generic methods.
10170
10171         * object.c (mono_object_get_virtual_method): Handle generic methods.
10172         Fixes bug #78882.
10173
10174         Code is contributed under MIT/X11 license.
10175
10176 Sat Sep 8 18:16:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
10177
10178         * image.c: fix locking in mono_image_load_file_for_image ().
10179
10180 Thu Sep 6 19:48:00 CEST 2007 Paolo Molaro <lupus@ximian.com>
10181
10182         * reflection.c, icall.c, icall-def.h: the methodinfos name field is
10183         used only as a cache: added an icall to fill it.
10184
10185 2007-09-16  Rodrigo Kumpera  <rkumpera@novell.com>
10186
10187         * reflection.h: exposed mono_reflection_free_type_info
10188         * reflection.c (mono_reflection_get_type_internal): type_args is always freed
10189         since mono_reflection_bind_generic_parameters makes a copy of it.
10190         * reflection.c (free_type_info): subinfos should be freed.
10191         * reflection.c (free_type_info): renamed to mono_reflection_free_type_info and 
10192         made non static.
10193         * icall.c (type_from_name and ves_icall_System_Reflection_Assembly_InternalGetType):
10194         replaced explicit cleanup of MonoTypeNameParse struct with a call to mono_reflection_free_type_info,
10195         this fixes #82695 and #81726.
10196    
10197
10198 2007-09-03  Atsushi Enomoto  <atsushi@ximian.com>
10199
10200         * process.h, process.c:  added support for user profile/info in
10201           ProcessStartInfo. For now only Windows works.
10202
10203 Fri Aug 31 17:30:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
10204
10205         * metadata.c: consider the generic arguments when comparing
10206         signatures (bug #82614).
10207
10208 Thu Aug 30 18:34:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
10209
10210         * cil-coff.h, image.c: updated assembly loader to cope with the
10211         PE32+ 64 bit file format.
10212
10213 Thu Aug 30 16:47:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
10214
10215         * assembly.c, class.c, domain.c, loader.c: remove useless
10216         inclusion of cil-coff.h.
10217
10218 2007-08-29  Jonathan Chambers  <joncham@gmail.com>
10219
10220         * marshal.c (cominterop_get_ccw): Walk up interface hierarchy
10221         if interface is marked with CoClassAttribute. 
10222    
10223         Code is contributed under MIT/X11 license.
10224
10225 Wed Aug 29 19:27:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
10226
10227         * sgen-gc.c: ensure no object from the to space is copied again or finalized
10228         if it's seen twice in major collections.
10229
10230 Wed Aug 29 18:46:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
10231
10232         * sgen-gc.c: big objects are not copied to the gray area, but they
10233         need to be considered for scanning, too, if they are brought alive
10234         by an object ready for finalizations or a survived one.
10235
10236 Wed Aug 29 18:43:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
10237
10238         * sgen-gc.c: properly account the number of disappearing links when
10239         they are nullified.
10240
10241 Wed Aug 29 18:37:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
10242
10243         * sgen-gc.c: share the code to scan the registered roots between the
10244         different types of collections.
10245
10246 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
10247
10248         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunModuleConstructor): New icall.
10249
10250 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
10251
10252         * object.c (mono_class_proxy_vtable): Use max_interface_id instead of
10253         class->max_interface_id in a one place. Fixes transparentproxy.exe test on ia64.
10254
10255 2007-08-28  Mark Probst  <mark.probst@gmail.com>
10256
10257         * security-manager.c (mono_security_manager_get_methods):
10258         LinkDemandSecurityException now has 2 arguments instead of 3.
10259
10260 2007-08-27  Zoltan Varga  <vargaz@gmail.com>
10261
10262         * class.c (mono_class_layout_fields): Only do the struct alignment hack on
10263         platforms which need it.
10264
10265 Mon Aug 27 18:29:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
10266
10267         * sgen-gc.c: unregister thread data structures with a pthread_key_t
10268         dtor.
10269
10270 Mon Aug 27 18:27:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
10271
10272         * threads.c: free the thread static data on thread exit.
10273
10274 Mon Aug 27 10:55:54 CEST 2007 Paolo Molaro <lupus@ximian.com>
10275
10276         * class.c: walk the hierarchy to find the generic definition for
10277         a class (fixes runtime part of bug #82498).
10278
10279 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
10280
10281         * assembly.c (mono_assembly_close): Move the closing of the referenced assemblies to
10282         ...
10283
10284         * image.c (mono_image_close): Here. Hopefully fixes #82510.
10285
10286 2007-08-24  Mark Probst  <mark.probst@gmail.com>
10287
10288         * monodiet.c (handle_cattrs): Fixed a custom attr leak.
10289
10290 2007-08-24  Robert Jordan  <robertj@gmx.net>
10291
10292         * appdomain.c: don't perform the ':'->';' substitution on Win32.
10293
10294 2007-08-24  Jb Evain  <jbevain@novell.com>
10295
10296         * class.c (mono_type_get_name_recurse): fix AssemblyQualifiedName
10297         for byref types.
10298
10299 2007-08-24  Mark Probst  <mark.probst@gmail.com>
10300
10301         * threads.c: Make sure a thread gets cleaned up only once.  Fixes
10302         #82286.
10303
10304 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
10305
10306         * assembly.c: Fix a warning.
10307         
10308 2007-08-23  Marek Habersack  <mhabersack@novell.com>
10309
10310         * appdomain.c: parse the <runtime> section looking for the probing
10311         element with the 'privatePath' attribute, which sets additional
10312         directories in which the runtime should look for assemblies.
10313
10314 2007-08-23  Robert Jordan  <robertj@gmx.net>
10315
10316         * marshal.c (Marshal_ReAllocHGlobal) : Fix GlobalReAlloc's flags.
10317         Fixes #82499.
10318
10319 2007-08-23  Martin Baulig  <martin@ximian.com>
10320
10321         * mono-debug.[ch]: Rename mono_debug_init_corlib() into
10322         _mono_debug_init_corlib() and remove it from the header file.
10323
10324 2007-08-23  Martin Baulig  <martin@ximian.com>
10325
10326         * mono-debug-debugger.c
10327         (mono_debugger_unhandled_exception): Ignore `ThreadAbortException';
10328         don't notify the debugger about it.
10329
10330         * mono-debug-debugger.h
10331         (MonoDebuggerEvent): Removed `THREAD_ABORT'.
10332
10333 2007-08-23  Robert Jordan  <robertj@gmx.net>
10334
10335         * icall-def.h, process.*: implemented Get|SetPriorityClass icalls.
10336         Code is contributed under MIT/X11 license.
10337
10338 Wed Aug 22 18:35:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
10339
10340         * sgen-gc.h, sgen-gc.c: abstracted most of the OS-specific code.
10341
10342 2007-08-22  Martin Baulig  <martin@ximian.com>
10343
10344         * mono-debug.c: Store debugging info on a per-domain basis and
10345         free it on domain unload.  Add support for unloading symbol files.
10346
10347         * mono-debug.h
10348         (MonoDebugList): New typedef.
10349         (MonoSymbolTable):
10350         - add `data_tables and `type_table'.
10351         - replace 'symbol_files' and `num_symbol_files' with a
10352           `MonoDebugList *'.
10353         (mono_debug_data_table): Removed.
10354         (mono_debug_list_add): New public function.
10355         (mono_debug_list_remove): New public function.
10356         (mono_debug_init_1): Renamed into mono_debug_init_corlib().
10357         (mono_debug_init_2_memory): Renamed into
10358         mono_debug_open_image_from_memory().
10359         (mono_debug_close_image): New public function.
10360         (mono_debug_domain_create): Likewise.
10361         (mono_debug_domain_unload): Likewise.
10362         (MONO_DEBUGGER_VERSION): Bump to 60.
10363
10364         * mono-debug-debugger.h
10365         (MonoDebuggerEvent):
10366         - remove `RELOAD_SYMTABS' and `METHOD_COMPILED'.
10367         - rename `ADD_MODULE' into `LOAD_MODULE'; add `UNLOAD_MODULE'.
10368         - add `DOMAIN_CREATE' and `DOMAIN_UNLOAD'.
10369         - rename `THREAD_CREATED' and `THREAD_EXITED' into
10370           `GC_THREAD_CREATED' and `GC_THREAD_EXITED'.
10371         - re-add `THREAD_CREATED' and `THREAD_EXITED'; with different
10372           meaning.
10373         (mono_debugger_add_symbol_file): Removed.
10374         (mono_debugger_add_type): Removed.
10375         (mono_debugger_lookup_type): Removed.
10376         (mono_debugger_lookup_assembly): Removed.
10377
10378         * domain.c
10379         (mono_domain_create): Call mono_debug_domain_create().
10380         (mono_init_internal): Call mono_debug_init_corlib().
10381
10382         * assembly.c
10383         (mono_assembly_close): Call mono_debug_close_image().
10384
10385 Wed Aug 22 17:26:02 CEST 2007 Paolo Molaro <lupus@ximian.com>
10386
10387         * sgen-gc.c: use the mono-mmap facilitites instead of hard-coding the
10388         mmap call.
10389
10390 Wed Aug 22 17:17:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
10391
10392         * sgen-gc.c: ensure section->pin_queue_end is initialized
10393         correctly when non pinning objects in the section have been found.
10394
10395 2007-08-22  Marek Habersack  <mhabersack@novell.com>
10396
10397         * appdomain.c (set_domain_search_path): cope with PrivateBinPath
10398         containing a list of directories separated by ':'. MSDN docs say
10399         the directories should be separated with ';'. Part of a bugfix for
10400         bug #81446
10401
10402 2007-08-21  Rodrigo Kumpera  <rkumpera@novell.com>
10403
10404         * class.c (mono_type_retrieve_from_typespec) : fixed the return type
10405         it should MonoType and not MonoClass.
10406
10407 2007-08-21  Atsushi Enomoto  <atsushi@ximian.com>
10408
10409         * culture-info-table.h : regenerated.
10410
10411 2007-08-20  William Holmes  <billholmes54@gmail.com>
10412
10413         *file-io.c: Added ves_icall_System_IO_MonoIO_ReplaceFile
10414          to call ReplaceFile Kernel32 on windows or in io-layer.
10415         *file-io.h: Added deceleration for ves_icall_System_IO_MonoIO_ReplaceFile
10416         *icall-def.h: Register ves_icall_System_IO_MonoIO_ReplaceFile
10417          as an internal call.
10418
10419         Code is contributed under MIT/X11 license.
10420
10421 2007-08-20  Jb Evain  <jbevain@novell.com>
10422
10423         * class-internals: add definitions for MONO_EXCEPTION_METHOD_ACCESS
10424         and MONO_EXCEPTION_FIELD_ACCESS.
10425
10426         * debug-helpers.[c|h]: new mono_field_full_name function.
10427
10428 2007-08-20  Mark Probst  <mark.probst@gmail.com>
10429
10430         * class.c: Removed class_security_level() and moved it to
10431         security-core-clr.c.
10432
10433         * security-core-clr.c, security-core-clr.h: class_security_level()
10434         is now public and renamed to mono_security_core_clr_class_level().
10435         It also looks for security attributes in the classes a class is
10436         nested in.
10437
10438 2007-08-20  Mark Probst  <mark.probst@gmail.com>
10439
10440         * security-core-clr.c, security-core-clr.h: CoreCLR security
10441         utility functions.
10442
10443         * Makefile.am: Added security-core-clr.[ch].
10444
10445         * security-manager.c, security-manager.h: Functions and enum for
10446         setting and getting the security mode.
10447
10448         * class.c: CoreCLR security checks.
10449
10450 Mon Aug 20 12:38:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
10451
10452         * icall-def.h, process.c, process.h: implemented icall to get
10453         user/system processor times.
10454
10455 2007-08-17  Mark Probst  <mark.probst@gmail.com>
10456
10457         * domain.c, threads.c, class-internals.h, domain-internals.h: New
10458         reader-lock-free jit_info_table.
10459
10460 2007-08-17  Zoltan Varga  <vargaz@gmail.com>
10461
10462         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_CUSTOM.
10463
10464         * marshal.c (mono_marshal_type_size): Ditto. Fixes #82465 and #82466.   
10465
10466         * object-internals.h (MonoException): Add missing _data member.
10467
10468 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
10469
10470         * loader.c (find_method, find_method_in_class): Fixed bug #81466,
10471         checking that only methods with matching qname or fqname are picked
10472         from implemented interfaces.
10473
10474 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
10475
10476         * verify.c (do_newarr):added, do type verification of
10477         newarr ops, push the right value on the eval stack.
10478         * verify.c (mono_method_verify): use do_newarr
10479
10480
10481 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
10482
10483         * verify.c (do_ldobj_value, do_unbox_value and do_box_value):
10484         factored the common code into get_boxable_mono_type, which
10485         is now using mono_type_get_full, this fixed byref related tests.
10486
10487 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
10488
10489         * class.c: added mono_type_get_full, this function has the same
10490         behavior of mono_class_get_full but the returned MonoType has
10491         all metadata of the associated token in case of a typespec token.
10492         * class.c: added mono_type_retrieve_from_typespec, used by 
10493         mono_type_get_full to retrieve the token type.
10494         * class.c (mono_class_create_from_typespec): changed to use
10495         mono_type_retrieve_from_typespec.
10496         * class.c (mono_ldtoken): changed to use mono_type_get_full
10497         for MONO_TOKEN_TYPE_(DEF|REF|SPEC).
10498         * class-internals.h: exported mono_type_get_full for internal use.
10499
10500 2007-08-16  Jb Evain  <jbevain@novell.com>
10501
10502         * domain.c (supported_runtimes): add entry for
10503         the 'moonlight' runtime version.
10504
10505 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
10506
10507         * verify.c (mono_method_verify): small typo sliped in.  
10508
10509 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
10510
10511         * verify.c (do_unbox_value): added, do type verification of
10512         unboxing ops
10513         * verify.c (mono_method_verify): use do_unbox_value
10514
10515
10516 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
10517
10518         * verify.c (dump_stack_value): fixed typo, was printing string
10519         instead of object on stack.
10520         * verify.c (do_box_value): moved the byref check up as it leads
10521         to invalid code and should be done earlier.
10522         * verify.c: improved error messages for and ldobj
10523
10524 2007-08-15  William Holmes  <billholmes54@gmail.com>
10525
10526         * marshal.c (emit_marshal_custom): Omit the call to 
10527           marshal_native_to_managed when calling native to managed 
10528           and the argument is specified as an out argument.
10529
10530         Code is contributed under MIT/X11 license.
10531
10532 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
10533
10534         * verify.c: fixed the type checks for generics, function pointers and vectors.
10535         Added type verification for ldobj and ldtoken. The verifier
10536         would segfault if header or signature of a method contained references
10537         to non-existant types.
10538
10539 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
10540
10541         * marshal.c (cominterop_get_ccw): Patch from
10542         Bill Holmes to no walk up interface hierarchy. 
10543         All parent methods should be present in the interface for COM.
10544    
10545         Code is contributed under MIT/X11 license.
10546
10547 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
10548
10549         * marshal.c (emit_marshal_com_interface): Patch from
10550         Bill Holmes to handle COM Interfaces as return values
10551         for native->managed calls.
10552    
10553         Code is contributed under MIT/X11 license.
10554
10555 2007-08-14  Jonathan Chambers  <joncham@gmail.com>
10556
10557         * marshal.c (cominterop_get_idispatch_for_object): Implement
10558         for runtime callable wrappers.
10559    
10560         Code is contributed under MIT/X11 license.
10561
10562 2007-08-13  Rodrigo Kumpera  <rkumpera@novell.com>
10563
10564         * pedump.c (main): changed from mono_init to mono_init_from_assembly
10565         so 2.0 types are accessible
10566
10567
10568 2007-08-13  Miguel de Icaza  <miguel@novell.com>
10569
10570         * domain.c (mono_init_internal): Call mono_assembly_load_friends
10571         once we load mscorlib.   Due to the order in which we initialize,
10572         the mono_assembly_load_full routine that loads mscorlib did not
10573         load friends.   We now load it once we load the
10574         mono_defaults.internals_visible_class class. 
10575
10576         * assembly.c: Expose the mono_load_friend_assemblies method.
10577
10578 2007-08-11  Rodrigo Kumpera  <rkumpera@novell.com>
10579
10580         * verify.c: improved the handling of boxing, better
10581         type checking for unary ops and conversion. Fix bug
10582         regarding managed pointer compatibility checking
10583
10584 2007-08-11  Zoltan Varga  <vargaz@gmail.com>
10585
10586         * icall.c (ves_icall_System_Array_SetGenericValueImpl): New icall.
10587
10588         * threads.c threads-types.h: Export mono_thread_get_stack_bounds.
10589
10590 2007-08-09  Raja R Harinath  <rharinath@novell.com>
10591
10592         * reflection.c (dup_type): Remove.
10593         * class.c (dup_type): Remove.
10594         (mono_metadata_signature_deep_dup): Use 'mono_metadata_type_dup'
10595         instead of the dodgy 'dup_type'.
10596         (inflate_generic_type): Likewise.  Fix the VAR/MVAR cases to
10597         handle the case where 'dup_type' needed the second argument.
10598
10599 2007-08-08  Zoltan Varga  <vargaz@gmail.com>
10600
10601         * domain.c: Fix a warning.
10602
10603 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
10604
10605         * class.c (mono_class_setup_vtable_general): Fixed bug #77127,
10606         checking that methods with the same fqname are not overridden
10607         with a method from an ancestor.
10608
10609 2007-08-07  Zoltan Varga  <vargaz@gmail.com>
10610
10611         * threads.c (free_thread_static_data_helper): Avoid a crash if
10612         thread->static_data is not yet set.
10613
10614 2007-08-07  Jonathan Chambers  <joncham@gmail.com>
10615
10616         * marshal.c: Use correct image when emitting
10617         native wrapper for COM calls.
10618    
10619         Code is contributed under MIT/X11 license.
10620
10621 2007-08-07  Atsushi Enomoto  <atsushi@ximian.com>
10622
10623         * icall-def.h, security.c, security.h :
10624           added icall wrapper to ProtectedMemory.[Unprotect|Protect]Data().
10625
10626 2007-08-07  Martin Baulig  <martin@ximian.com>
10627
10628         * mono-debug-debugger.h
10629         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD'.
10630
10631         * domain.c (mono_domain_free): Call
10632         `mono_debugger_event (MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD)'.
10633
10634 2007-08-06  Rodrigo Kumpera  <rkumpera@novell.com>
10635
10636         * verify.c (check_underflow, check_overflow): error message now returns IL offset
10637         * verify.c (in_same_block): code should test if either offset is inside the clauses
10638         * verify.c (mono_method_verify): push the exception into the eval stack of exception
10639         and filter blocks
10640
10641 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
10642
10643         * image.c (mono_image_close): Fix a leak.
10644
10645         * object.c (mono_runtime_invoke_array): Avoid using alloca.
10646
10647         * icall.c (ves_icall_FieldInfo_SetValueInternal): Ditto.        
10648
10649 Fri Aug 3 19:54:23 CEST 2007 Paolo Molaro <lupus@ximian.com>
10650
10651         * domain.c, threads.c, threads-types.h: fix memory retention issue
10652         with thread static variables not being cleared on domain unload.
10653         Reuse thread static slots after domain unload.
10654
10655 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
10656
10657         * object.c (mono_runtime_invoke_array): Handle the case when the receiver is a
10658         nullable type.
10659
10660         * marshal.c (mono_marshal_get_runtime_invoke): Revert the previous change, it is
10661         now done in mono_runtime_invoke_array.
10662
10663         * marshal.c (mono_marshal_get_runtime_invoke): Handle the case when the 
10664         receiver is a nullable type.
10665
10666         * class.c (mono_class_is_assignable_from): Handle the case when klass is a 
10667         generic parameter.
10668
10669 2007-08-03  Jonathan Chambers  <joncham@gmail.com>
10670
10671         * marshal.c: Implement COM Objects as return type for 
10672         managed->unmanaged calls. Added Release calls for COM Object
10673         out/return values in managed->unmanaged calls.
10674
10675         Code is contributed under MIT/X11 license.
10676
10677 Fri Aug 3 17:00:51 CEST 2007 Paolo Molaro <lupus@ximian.com>
10678
10679         * threads.h, threads-type.h: move the hazard pointer declarations
10680         to the private header.
10681
10682 Fri Aug 3 13:13:39 CEST 2007 Paolo Molaro <lupus@ximian.com>
10683
10684         * file-io.c, appdomain.c: memory leak fixes.
10685
10686 2007-08-02  Dick Porter  <dick@ximian.com>
10687
10688         * socket-io.c
10689         (ves_icall_System_Net_Sockets_Socket_Socket_internal): Move the
10690         SO_REUSEADDR setting into io-layer/sockets.c.
10691
10692 2007-08-01  Zoltan Varga  <vargaz@gmail.com>
10693
10694         * icall.c (ves_icall_Type_GetMethodsByName): Return the members inherited
10695         from Object when called on a generic parameter. Fixes #82211.
10696
10697 2007-08-01  Dick Porter  <dick@ximian.com>
10698
10699         * file-io.c (convert_share): Test FileShare values bit-by-bit.
10700         Fixes bug 79250 yet again.
10701
10702 2007-07-30  Martin Baulig  <martin@ximian.com>
10703
10704         Merged the `debugger-dublin' branch.
10705
10706         * mono-debug.h
10707         (MonoDebugDataTable): New typedef.
10708         (MonoDebugMethodAddressList): New typedef.
10709         (MonoDebugWrapperData): Removed.
10710         (MonoDebugSymbolTable): Removed `current_data_table',
10711         `current_data_table_size', `current_data_table_offset'.
10712         (MonoDebugDataItemType): Moved into mono-debug.c.
10713         (MonoDebugMethodJitInfo): Remove `address'.
10714         (mono_debug_data_table): New global variable.
10715         (mono_debug_lookup_method_addresses): New public function.
10716         (mono_debug_find_method): Take a `MonoMethod *', not a
10717         `MonoDebugMethodInfo *'.
10718
10719         * mono-debug.c: Drop support for the old symbol tables.
10720
10721 2007-06-28  Martin Baulig  <martin@ximian.com>
10722
10723         * mono-debug.c (mono_debug_debugger_version): New public variable.
10724
10725 2007-07-31  William Holmes  <billholmes54@gmail.com>
10726
10727         * metadata.c Changed mono_type_create_from_typespec to not insert
10728           the type into the hash map until after
10729           do_mono_metadata_parse_type has completed.
10730         Fixes Bug #82194
10731         Code is contributed under MIT/X11 license.
10732
10733 2007-07-31  Zoltan Varga  <vargaz@gmail.com>
10734
10735         * icall.c (ves_icall_Type_GetMethodsByName): Avoid a crash when called on a
10736         generic parameter. Fixes #82211.
10737
10738 2007-07-27  Jb Evain  <jbevain@novell.com>
10739
10740         * pedump.c (dump_metadata, dump_metadata_header): dump
10741         versions contained in the metadata header.
10742
10743 Fri Jul 27 17:07:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
10744
10745         * threads.c: register small_id_table with the GC.
10746
10747 2007-07-27  Mark Probst  <mark.probst@gmail.com>
10748
10749         * threads.c, threads.h, class-internals.h, object-internals.h:
10750         Hazard pointers, to be used by lock-free parallel algorithms.
10751
10752 2007-07-26  Dick Porter  <dick@ximian.com>
10753
10754         * appdomain.c (mono_runtime_cleanup): Invoke io-layer cleanup
10755         routine on non-windows platforms, as I've not managed to think of
10756         a non-kludgy way of doing this.  Finishes off bug 78739.
10757
10758 Wed Jul 25 18:06:33 CEST 2007 Paolo Molaro <lupus@ximian.com>
10759
10760         * object.c: properly setup interface_bitmap in proxy vtables.
10761
10762 2007-07-25  Marek Habersack  <mhabersack@novell.com>
10763
10764         * appdomain.c (get_shadow_assembly_location): do not use TickCount
10765         to create unique shadow copy target directories, use the domain's
10766         serial number instead. Each domain gets a unique target directory
10767         that way.
10768
10769         * domain.c (mono_domain_create): added code to increment domain
10770         shadow copy serial number and cache the value in the current
10771         domain structure.
10772
10773         * domain-internals.h (struct _MonoDomain): added a new field -
10774         shadow_serial to hold the serial number used in generation of
10775         shadow-copy directories. This is to make sure that the directory
10776         name is unique for each and every domain created. We avoid a race
10777         condition with overriding assemblies already in use by other app
10778         domains.
10779
10780 2007-07-24  Rodrigo Kumpera  <rkumpera@novell.com>
10781
10782         * class.c (mono_bounded_array_class_get): fixed memory leak when 
10783         binding generic parameters.
10784
10785 2007-07-24  Raja R Harinath  <rharinath@novell.com>
10786
10787         * metadata.c (do_mono_metadata_parse_generic_class): Use
10788         mono_metadata_lookup_generic_class.  Don't g_assert on a metadata
10789         error.
10790
10791 Tue Jul 24 15:15:19 CEST 2007 Paolo Molaro <lupus@ximian.com>
10792
10793         * loader.c, class-internals.h, reflection.c: removed the per-method
10794         generics hashtable: we use the global one through the call of
10795         mono_class_inflate_generic_method ().
10796
10797 Mon Jul 23 19:43:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
10798
10799         * class.c, metadata.c, class-internals.h: introduce yet another
10800         generics global cache for inflated methods (fixes 98% of the perf
10801         issue in bug #81806).
10802
10803 2007-07-23  Raja R Harinath  <rharinath@novell.com>
10804
10805         Fix #81035 -- avoid allocating MonoGenericInsts willy-nilly
10806         * metadata.c (mono_metadata_lookup_generic_inst): Kill.
10807         (mono_metadata_get_generic_inst): New.  Given a list of MonoType*,
10808         return a MonoGenericInst containing (a copy) of those types.
10809         (mono_metadata_inflate_generic_inst): Update to changes.
10810         (mono_metadata_parse_generic_inst): Likewise.
10811         (mono_get_shared_generic_inst): Likewise.
10812         * reflection.c (mono_class_bind_generic_parameters): Likewise.
10813         (mono_reflection_bind_generic_method_parameters): Likewise.
10814         * metadata-internals.h: Likewise.
10815         * icall.c (free_generic_context): Kill.
10816         (init_generic_context_from_args): Use mono_metadata_get_generic_inst.
10817
10818         * reflection.c (reflection_methodbuilder_to_mono_method): Use
10819         mono_metadata_type_dup.
10820         * marshal.c (mono_mb_create_method): Likewise.
10821
10822         * metadata.c (mono_metadata_type_dup): Rename from
10823         mono_metadata_type_dup_mp.  Take an optional mempool instead of a
10824         MonoImage.  Handle a few more cases, esp. when no mempool is given.
10825         * marshal.c, metadata-internals.h: Update to changes.
10826
10827 Mon Jul 23 11:43:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
10828
10829         * class.c: fixed a small leak for array classes and removed warning.
10830
10831 2007-07-22  Zoltan Varga  <vargaz@gmail.com>
10832
10833         * loader.c (mono_method_get_param_token): Make this work on generic methods.
10834         Return 0x8000000 for return parameters. Fixes #82161.
10835
10836 2007-07-21  Marek Habersack  <grendello@gmail.com>
10837
10838         * appdomain.c (get_shadow_assembly_location): append the current
10839         ticks value to the path. Avoids overwriting the same assemblies by
10840         several threads at the same time.
10841
10842 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
10843         and Raja R Harinath  <rharinath@novell.com>
10844
10845         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
10846         Simplify slightly.
10847         (ves_icall_MonoMethod_GetGenericMethodDefinition): Update
10848         property for testing if a method is a generic method definition.
10849
10850 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
10851
10852         * domain-internals.h : added 2.0 member fields to MonoAppDomainSetup.
10853
10854 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
10855
10856         * verify.c: used function from private branch, reverted to the one in class.h 
10857
10858 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
10859
10860         * verify.c: a typo slipped in and the code wont compile
10861
10862 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
10863
10864         * verify.c: now all code use IS_MANAGED_POINTER and UNMASK_TYPE macros.
10865         disabled box instruction as it is doing the wrong thing
10866         improved stack dump messages, now it is easier to debug type related issues
10867
10868
10869 2007-07-19  Juraj Skripsky  <js@hotfeet.ch>
10870
10871         * icall.c (ves_icall_System_MonoType_getFullName): Fix a leak. 
10872
10873 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
10874
10875         * verify.c: changed MONO_TYPE_TYPEDBYREF stack type from 
10876         TYPE_COMPLEX to TYPE_PTR, it did not make any sense to be
10877         grouped with class and valuetype. This change will simply 
10878         the code as it should be handled just like unmanaged pointers.
10879
10880 2007-07-19  Mark Probst  <mark.probst@gmail.com>
10881
10882         * class.c (concat_two_strings_with_zero): Fixed a silly bug.
10883
10884 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
10885
10886         * verify.c: several stack merge issues fixed, reference comparisons now
10887         check the type size. strict type check now works correctly.
10888         added more uses of IS_MANAGED_POINTER macro.
10889         fixed issues pointed by running the test suite against .net.
10890         
10891
10892 2007-07-19  Mark Probst  <mark.probst@gmail.com>
10893
10894         * class.c, loader.c, class-internals.h: Removed the
10895         MonoLoaderErrorKind enum and replaced it with the MONO_EXCEPTION_
10896         defines.
10897
10898         * icall.c: Better error checking in some internal reflection
10899         methods.
10900
10901 2007-07-18  William Holmes  <billholmes54@gmail.com>
10902
10903         * filewatcher.c : removed unused variable 'filename' in 
10904           ves_icall_System_IO_FSW_SupportsFSW
10905
10906 Mon Jul 16 19:36:16 CEST 2007 Paolo Molaro <lupus@ximian.com>
10907
10908         * reflection.c, class.c, icall.c, loader.c: mono_get_inflated_method () is
10909         obsolete, removed.
10910
10911 2007-07-15  Zoltan Varga  <vargaz@gmail.com>
10912
10913         * icall.c (ves_icall_System_Reflection_FieldInfo_GetTypeModifiers): New icall.
10914         
10915         * icall.c (ves_icall_System_Reflection_Module_ResolveSignature): New icall.
10916
10917 2007-07-14  Zoltan Varga  <vargaz@gmail.com>
10918
10919         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
10920         Implement generics support.
10921         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
10922
10923         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Add new
10924         type_args and method_args arguments.
10925         (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
10926         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
10927         (ves_icall_System_Reflection_Module_ResolveMemberToken): Ditto.
10928
10929 2007-07-13  Rodrigo Kumpera  <rkumpera@novell.com>
10930
10931         * reflection.c: patch from Thong Nguyen to fix atribute resolution.
10932           It adds a rootimage parameter to mono_reflection_get_type_internal,
10933           adds new function mono_reflection_get_type_with_rootimage and use
10934           the rootimage to resolve the types instead of the current image
10935
10936 2007-07-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
10937
10938         * culture-info-table.h: Forgot to update after r78304.
10939
10940 2007-07-13  Raja R Harinath  <rharinath@novell.com>
10941
10942         * class.c (mono_class_is_open_constructed_type)
10943         <MONO_TYPE_GENERICINST>: Don't recompute a computed field.
10944
10945 2007-07-12  Rodrigo Kumpera  <rkumpera@novell.com>
10946
10947         * class.c (mono_bounded_array_class_get):  method fails if used with
10948         an incomplete TypeBuilder enum (no basetype field), fixed it by 
10949         avoiding calculating the size for such array as it cannot be instantiated.
10950         Fix bug #82015
10951
10952 2007-07-12  Raja R Harinath  <rharinath@novell.com>
10953
10954         * class-internals.h (_MonoGenericInst::is_reference): Remove bogus
10955         field.
10956         * metadata.c, reflection.c: Update to changes.
10957
10958 2007-07-11  Rodrigo Kumpera  <rkumpera@novell.com>
10959
10960         * class.c, class-internal.h: added mono_type_is_valid_enum_basetype and
10961         mono_class_is_valid_enum, they are used to valide a enum when loading.
10962         * reflection.c: used new functions to throw TypeLoadException when and
10963         invalid enum is build with TypeBuilder. Fixes #82018
10964   
10965 Wed Jul 11 14:47:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
10966
10967         * object.c: forgot commit of mono_class_setup_methods () to access
10968         iface->methods.
10969         * object-internals.h: added a few more handy fields to
10970         MonoIMTCheckItem.
10971
10972 2007-07-11  Zoltan Varga  <vargaz@gmail.com>
10973
10974         * object.c (build_imt): Call mono_class_setup_methods () before accessing 
10975         iface->methods.
10976
10977 Tue Jul 10 16:49:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
10978
10979         * class-internals.h, object-internals.h, object.c: IMT-based
10980         interface invocation core from Massimiliano Mantione
10981         (massi@ximian.com) with a reworked arch-specific interface,
10982         bsearch implementation and a few bugfixes and memory savings by me.
10983
10984 2007-07-10  Rodrigo Kumpera  <rkumpera@novell.com>
10985
10986         * class.c (mono_class_create_from_typedef): mono would segfault if 
10987         an enum did not have a __value field. It now throws a TypeLoadException
10988         for such cases. Fix bug #82022
10989
10990 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
10991
10992         * marshal.c (mono_marshal_string_to_utf16_copy): Fix allocation size.
10993
10994 2007-07-09  Mark Probst  <mark.probst@gmail.com>
10995
10996         * class.c (mono_class_init): If a class is already inited but has
10997         an exception_type set, return FALSE, not TRUE.  Fixes: 82050.
10998
10999 2007-07-09  Mark Probst  <mark.probst@gmail.com>
11000
11001         * class.c: Properly handle the case of an unimplemented interface
11002         method.  Fixes: 81673.
11003
11004 Mon Jul 9 16:21:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
11005
11006         * class-internals.h, object.c: cleanup patch from massi: use
11007         MonoVTable->interface_bitmap since the vtable interfaces offset array
11008         is going away.
11009
11010 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
11011
11012         * icall-def.h icall.c: Remove Module:get_MDStreamVersion icall and add a new
11013         GetMDStreamVersion icall instead.
11014
11015 Mon Jul 9 11:34:17 CEST 2007 Paolo Molaro <lupus@ximian.com>
11016
11017         * filewatcher.c: patch from Thong Nguyen <tum@veridicus.com> to
11018         not use mono_dl_build_path() with a full library name: makes
11019         fallbacks to libgaim and libfam work.
11020
11021 2007-07-06  William Holmes  <billholmes54@gmail.com>
11022
11023         * assembly.c: Added a continue statement in probe_for_partial_name when
11024          parse_assembly_directory_name fails.  Fixes : 82002
11025
11026 2007-07-06  Rodrigo Kumpera  <rkumpera@novell.com>
11027
11028         * verify.c (check_unmanaged_pointer_type): renamed to check_unverifiable_type
11029         and added a verification  for TYPEDBYREF.
11030         * verify.c (verify_stack_type_compatibility): fix handling of byref types,
11031         make native int interchangeable with int32 and some small cleanup and formating.
11032         * verify.c (push_arg): only ldarg on invalid argument is valid (but not verifiable) and
11033         handle byref of byref.
11034         * verify.c (push_local): handle byref of byref.
11035         * verify.c (do_binop): invalid mix of values is unverifiable
11036         * verify.c (do_invoke_method): fixed the handling of bad params on stack and
11037         added visibility checks
11038         * verify.c (field related method): added visibility checks
11039         * verify.c (do_push_field): cannot take the address of a temporary valuetype field
11040
11041 2007-07-06  Zoltan Varga  <vargaz@gmail.com>
11042
11043         * marshal.c (mono_marshal_string_to_utf16_copy): Null terminate the
11044         string.
11045
11046 2007-07-05  Zoltan Varga  <vargaz@gmail.com>
11047
11048         * profiler.c (mono_profiler_load): Fix an off-by-one error.
11049
11050         * marshal.c (emit_marshal_string): When returning a string from managed code,
11051         allways make a copy even for unicode strings. Fixes #81990.
11052
11053 Wed Jul 4 11:53:57 CEST 2007 Paolo Molaro <lupus@ximian.com>
11054
11055         * object.c: cleaned up mono_runtime_invoke_array () and fixed handling
11056         of byref generic inst types (bug #81997).
11057
11058 2007-07-03  Rodrigo Kumpera  <rkumpera@novell.com>
11059
11060         * class.c: moved methods mono_method_can_access_field and mono_method_can_access_method from mini/mini.c
11061         * class.h: added declarations of mono_method_can_access_field() and mono_method_can_access_method()
11062
11063 2007-07-02  Zoltan Varga  <vargaz@gmail.com>
11064
11065         * marshal.c (emit_marshal_string): Add support for unicode strings in
11066         MARSHAL_ACTION_MANAGED_CONV_RESULT. Fixes #81990.
11067
11068 2007-07-02 Rodrigo Kumpera  <rkumpera@novell.com>
11069
11070         * verify.c: field load/store are now verified, missing only access checks now
11071
11072 2007-06-28  Martin Baulig  <martin@ximian.com>
11073
11074         * mono-debug.c (mono_debug_debugger_version): New public variable.
11075
11076 2007-06-24  Gert Driesen  <drieseng@users.sourceforge.net>
11077
11078         * locales.c: When constructing DateTimeFormat or NumberFormat for
11079         MonoCultureInfo, inherit readonly bit from MonoCultureInfo. The
11080         MonoCultureInfo contructed from the current locale is always
11081         read-only and has UseUserOverride set to true. All MonoCultureInfo
11082         instances returned for GetCultures have both IsReadOnly and
11083         UseUserOverride set to true. Fixes part of bug #81930.
11084
11085 2007-06-22  Jonathan Chambers  <joncham@gmail.com>
11086
11087        * icall-def.h: Update System.__ComObject icalls
11088        * marshal.c: Avoid managed transition (and object creation)
11089        when looking up COM interface in RCW.
11090        * marshal.h: Ditto.
11091        
11092        Code is contributed under MIT/X11 license.
11093
11094 2007-06-22  Zoltan Varga  <vargaz@gmail.com>
11095
11096         * marshal.c (mono_marshal_get_runtime_invoke): Cache in the method image for now
11097         to avoid crashes during assembly unloading.
11098
11099 2007-06-22  Raja R Harinath  <rharinath@novell.com>
11100
11101         Fix MethodInfo.IsGenericMethodDefinition
11102         * reflection.c (mono_reflection_bind_generic_method_parameters):
11103         Rearrange code to ensure we always uses a generic method definition.
11104         * class.c (mono_class_inflate_generic_method_full): Set
11105         'generic_container' field only for generic method definitions.
11106         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
11107         Use presense of 'generic_container' field as indication of being a
11108         generic method definition.
11109
11110 2007-06-21  Zoltan Varga  <vargaz@gmail.com>
11111
11112         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
11113
11114         * object-internals.h: Reflect changes in the layout of the managed Delegate
11115         class.
11116         
11117         * object-internals.h reflection.c icall-def.h: Applied patch from Robert
11118         Jordan (robertj@gmx.net). Add a dtor to dynamic methods which frees up the
11119         runtime memory used by the dynamic method. Fixes #77146.
11120
11121 2007-06-21  Dick Porter  <dick@ximian.com>
11122
11123         * file-io.h: 
11124         * file-io.c (convert_share): Cope with FileShare.Delete.  Patch
11125         from Wojtek Krawczyk <krawczyk.wojciech@gazeta.pl>, fixes bug
11126         81767.
11127
11128 2007-06-21  Raja R Harinath  <rharinath@novell.com>
11129
11130         * reflection.c (method_encode_methodspec): Add a tripwire.
11131         * class.c (inflate_generic_type): The fully open generic type is
11132         not the same as the generic type definition.
11133
11134 2007-06-21  Martin Baulig  <martin@ximian.com>
11135
11136         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 59.
11137
11138         * mono-debug-debugger.h
11139         (MonoDebuggerBreakpointInfo): Removed.
11140         (mono_debugger_insert_breakpoint_full): Moved to ../mini/debug-mini.h.
11141         (mono_debugger_remove_breakpoint): Likewise.
11142         (mono_debugger_breakpoint_callback): Likewise.
11143         (mono_debugger_start_add_type): Renamed into mono_debugger_add_type().
11144
11145 2007-06-21  Raja R Harinath  <rharinath@novell.com>
11146
11147         * metadata.c (mono_metadata_lookup_generic_class): The fully open
11148         generic type is not the same as the generic type definition.
11149         * class.c (mono_generic_class_get_class): Likewise.
11150
11151 2007-06-20  Geoff Norton  <gnorton@customerdna.com>
11152
11153         * icall.c: The second argument to 
11154         System.Reflection.MethodBase.GetMethodFromHandleInternalType
11155         is a MonoType not a MonoClass.
11156
11157 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
11158
11159         * verify.c: support for function pointers in the verifier
11160
11161 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
11162
11163         * verify.c: unmanaged pointer verification checks (loading unmanaged pointers is unverifiable)
11164
11165 Wed Jun 20 10:22:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
11166
11167         * assembly.c: removed Mono.Data.SqliteClient from the list of
11168         forward-compatible assemblies as it breaks the ABI (bug #81899).
11169
11170 2007-06-19  Raja R Harinath  <rharinath@novell.com>
11171
11172         * metadata.c (mono_metadata_lookup_generic_class): Protect cache
11173         lookup/update with the loader lock.
11174         * reflection.c (mono_class_bind_generic_parameters): No need to
11175         protect mono_metadata_lookup_* with the loader lock.
11176         * class.c (inflate_generic_type): Likewise.
11177         
11178         * metadata.c (ginst_in_image): Avoid mono_class_from_mono_type
11179         on a generic instantiated type.
11180
11181 2007-06-18  Rodrigo Kumpera <kumpera@gmail.com>
11182
11183         *verify.c: produce meanfull error messages on verification error
11184         *verify.c: fixed some cases of verification errors reported as validation errors
11185         *pedump.c: fixed the error name array, now it shows validation errors properly
11186         *verify.h: fixed the contant that should be used for verification errors
11187
11188 Mon Jun 18 17:07:22 CEST 2007 Paolo Molaro <lupus@ximian.com>
11189
11190         * metadata.c, image.c, metadata-internals.h: part of the fixes needed
11191         for bug #77596, 81858 and 80743 (generics data structures on domain
11192         unload).
11193
11194 2007-06-15  Raja R Harinath  <rharinath@novell.com>
11195
11196         Avoid allocating 'MonoGenericContext' on the heap.
11197         * class-internals (_MonoMethodInflated::context): Make field
11198         inline, not a pointer.
11199         * loader.c (method_from_methodspec): Allocate 'new_context' on the
11200         stack.  Use the context embedded within the inflated method as the
11201         hash key, rather than 'new_context'.
11202         * class.c (inflate_generic_context): Simplify.  Return a struct
11203         rather than allocating on the heap.
11204         (mono_class_inflate_generic_method_full): Update to changes.  Now,
11205         doesn't salt away a copy of the context -- simplifying the
11206         lifetime rules of a 'MonoGenericContext *'.
11207         (mono_method_get_context): Return pointer to embedded context.
11208         (setup_generic_array_ifaces): Allocate temporary context on stack.
11209         * reflection.c (inflate_mono_method): Likewise.
11210         (mono_reflection_bind_generic_method_parameters): Likewise.
11211         Use the context embedded within the inflated method as the hash key.
11212
11213         Avoid a source of allocation of 'MonoGenericContext'.
11214         * class-internals.h (_MonoGenericClass::context): Combine 'inst'
11215         and 'cached_context' fields into embedded 'MonoGenericContext' field.
11216         * class.c: Update to changes.
11217         (mono_generic_class_get_context): Simplify drastically.  Now just
11218         returns a pointer to the field.
11219         * metadata-internals.h (mono_metadata_generic_context_hash): Mark
11220         argument as a const pointer.
11221         (mono_metadata_generic_context_equal): Likewise.
11222         * metadata.c, loader.c, icall.c, reflection.c, verify.c:
11223         Update to changes.
11224
11225 2007-06-14  Rodrigo Kumpera  <kumpera@gmail.com>
11226
11227         * verify.c improved the handling of brtrue/brfalse, factored out common code
11228
11229 2007-06-14  Raja R Harinath  <rharinath@novell.com>
11230
11231         Kill MonoGenericMethod.
11232         * class-internals.h (MonoGenericContext::method_inst): Rename from
11233         'gmethod' and convert to a MonoGenericInst.
11234         (MonoGenericMethod): Remove.
11235         * metadata.h (MonoGenericMethod): Note that the name is obsolete.
11236         * loader.c (method_from_methodspec): Update to changes.  Use a
11237         MonoGenericContext as the key to the hashtable.
11238         * metadata.c (mono_metadata_generic_context_equal): Rename from 
11239         'mono_metadata_generic_method_equal' and take MonoGenericContext.
11240         (mono_metadata_generic_context_hash): Likewise from
11241         'mono_metadata_generic_method_hash'.  Change hash function.
11242         (mono_metadata_load_generic_params): Update to changes.
11243         (mono_get_shared_generic_method): Remove.
11244         * metadata-internals.h (mono_get_shared_generic_method): Remove.
11245         * class.c (inflate_generic_type) [MONO_TYPE_MVAR]: Update to changes.
11246         (inflate_generic_context): Likewise.
11247         (mono_class_inflate_generic_method_full): Likewise.
11248         (setup_generic_array_ifaces): Likewise.
11249         (mono_class_create_from_typespec): Likewise.
11250         * reflection.c (encode_generic_method_sig): Take a MonoGenericContext.
11251         (method_encode_methodspec): Update callsite.
11252         (reflection_methodbuilder_to_mono_method): Update to changes.
11253         (mono_reflection_bind_generic_method_parameters): Likewise.  Use a
11254         MonoGenericContext as the key to the hashtable.
11255         (inflate_mono_method): Update to changes.
11256
11257         * class-internals.h (MonoGenericMethod::container): Remove.
11258         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
11259
11260 Thu Jun 14 12:40:05 CEST 2007 Paolo Molaro <lupus@ximian.com>
11261
11262         * profiler-private.h, profiler.c, profiler.h: added API to profile
11263         exception events.
11264
11265 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
11266
11267         * verify.c: Fixed pointer type handling, some code and message formating and two invalid assigments 
11268
11269 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
11270
11271         * verify.c: method invocation is now validated, now we verify parameter types on stack.
11272         Fixed overflow and underflow not aborting the verification process.
11273
11274 2007-06-13  Mark Probst  <mark.probst@gmail.com>
11275
11276         * class-internals.h (MonoStats): Added stats entries for dynamic
11277         code allocations.
11278
11279 2007-06-12  Zoltan Varga  <vargaz@gmail.com>
11280
11281         * loader.c (mono_free_method): Free header->locals and header->clauses.
11282
11283         * marshal.c (mono_mb_create_method): Make a copy of the locals as well in the
11284         dynamic case.
11285
11286         * threads.c (mono_thread_get_stack_bounds): Fix memory leak.
11287
11288         * class.c (setup_interface_offsets): Allocate memory from the image mempool.
11289
11290 2007-06-12  Raja R Harinath  <rharinath@novell.com>
11291
11292         * verify.c (TYPE_MAX): Set it to 8 to match the dimensions of all
11293         the tables.
11294
11295 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
11296
11297         *pedump.c (main): return error code 4 if assembly cannot be loaded instead of segfaulting
11298
11299 2007-06-11  Raja R Harinath  <harinath@gmail.com>
11300
11301         MonoGenericMethod on a diet
11302         * class-internals.h (_MonoMethodInflated::reflection_info): Move
11303         here ...
11304         (_MonoGenericMethod::reflection_info): ... from here.
11305         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
11306         Update to changes.
11307         * reflection.c (inflate_mono_method): Likewise.
11308         (mono_reflection_bind_generic_method_parameters): Likewise.
11309
11310 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
11311
11312         *verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
11313         *verify.c: factored long ldarg forms to share code with short forms
11314
11315 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
11316
11317         *verify.c: fixed code formating factored some duplicate code
11318         into a new function
11319
11320         *verify.h: fixed binary incompatibility introduced earlier
11321
11322         *pedump.c: fixed formating
11323
11324 2007-06-11  Raja R Harinath  <harinath@gmail.com>
11325
11326         Fix assertion when disassembling Mono.C5.dll
11327         * loader.c (method_from_methodspec): Avoid inflating a method
11328         twice with the same context.  If the methodref is inflated, use
11329         the declaring method instead.
11330
11331         * class.c (mono_class_from_generic_parameter): Fix case similar to
11332         bug #81830 handled below, but for method containers.
11333
11334 2007-06-10  Raja R Harinath  <harinath@gmail.com>
11335
11336         * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
11337         get_shared_generic_class.  Directly inflate the instance.
11338         [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
11339         (inflate_generic_class): Delete.
11340         (get_shared_generic_class): Delete.  Move setting of
11341         'cached_class' and 'cached_context' ...
11342         * metadata.c (mono_metadata_lookup_generic_class): ... here.
11343
11344         * metadata.c (mono_metadata_lookup_generic_class): Change
11345         signature to take the components of a MonoGenericClass rather than
11346         an allocated MonoGenericClass.  Change semantics to be intern-like.
11347         * reflection.c (mono_class_bind_generic_parameters): Update to
11348         changes.  Make locking region tighter.
11349         * class.c (inflate_generic_class): Update to changes.
11350         (get_shared_generic_class): Likewise.
11351         * metadata-internals.h: Likewise.
11352
11353         * reflection.c (mono_class_bind_generic_parameters): Take and
11354         return a MonoClass*, not a MonoType*.  Add 'is_dynamic' parameter.
11355         (mono_reflection_bind_generic_parameters): Use
11356         'mono_class_bind_generic_parameters' rather than duplicate the code.
11357         * class.c (mono_bounded_array_class_get): Update to changes.
11358         * object-internals.h: Likewise.
11359
11360         * reflection.c (mono_class_bind_generic_parameters): Only support
11361         parameterizing generic type definitions.  Remove support for other
11362         open types.
11363
11364 2007-06-08  Zoltan Varga  <vargaz@gmail.com>
11365
11366         * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
11367
11368         * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
11369         in the dynamic case.
11370
11371 2007-06-08  Gert Driesen  <drieseng@users.sourceforge.net>
11372
11373         * threads.c: When cleaning up thread, reset the Background bit.
11374         Fixes bug #81720.
11375
11376 2007-06-08  Jonathan Chambers  <joncham@gmail.com>
11377
11378        * metadata.c: Move variable declarations to top of scope.
11379        * verify.c: Move variable declarations to top of scope.
11380
11381        Code is contributed under MIT/X11 license.
11382
11383 2007-06-08  Raja R Harinath  <rharinath@novell.com>
11384
11385         * reflection.c (mono_class_bind_generic_parameters): Replace
11386         open-coded loop with mono_metadata_inflate_generic_inst.
11387
11388         * class.c (get_shared_generic_class): Don't call
11389         mono_get_shared_generic_inst.  Use the container's own
11390         'class_inst'.
11391
11392         * metadata.c (mono_metadata_load_generic_params): Move
11393         initialization of 'context' field here from ...
11394         * class.c (mono_class_create_from_typedef): ... here, and ...
11395         * loader.c (mono_get_method_from_token): ... here.
11396
11397         * class.c (get_shared_generic_class): Rename from
11398         mono_get_shared_generic_class and make static.
11399         (mono_get_shared_generic_inst): Move to metadata.c.
11400         * loader.c (mono_get_shared_generic_method): Likewise.
11401         * class-internals.h, metadata-internals.h: Update to changes.
11402
11403         Fix #81830
11404         * class.c (mono_class_from_generic_parameter): Don't assume a
11405         generic container owner exists.  Generic containers from monodis
11406         don't have any.
11407
11408 2007-06-06  Rodrigo Kumpera  <kumpera@gmail.com>
11409
11410         * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
11411         * verify.h: new typedefs to returns the non-verifiable status
11412         * verify.c: initial implementation of generics, stack merging and object compatibility check
11413
11414 2007-06-06  Mark Probst  <mark.probst@gmail.com>
11415
11416         * class.c, image.c, class-internals.h (MonoImage): class_cache is
11417         a MonoInternalHashTable again (fixed bug in internal hash table
11418         code).
11419
11420 2007-06-06  Mark Probst  <mark.probst@gmail.com>
11421
11422         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
11423         MonoInternalHashTable again (fixed bug in internal hash table
11424         code).
11425
11426 2007-06-06  Mark Probst  <mark.probst@gmail.com>
11427
11428         * class.c, image.c, class-internals.h, domain.c,
11429         domain-internals.h (MonoImage): Reverting MonoInternalHashTable
11430         changes.  Have to figure out what makes them break the SWF
11431         regression.
11432
11433 2007-06-04  Mark Probst  <mark.probst@gmail.com>
11434
11435         * class.c, image.c, class-internals.h (MonoImage): class_cache is
11436         a MonoInternalHashTable now.
11437
11438 2007-06-04  Mark Probst  <mark.probst@gmail.com>
11439
11440         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
11441         MonoInternalHashTable now.
11442
11443 2007-05-31  Zoltan Varga  <vargaz@gmail.com>
11444
11445         * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
11446         invoke_impl code.
11447
11448         * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
11449
11450         * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
11451         dependent trampoline.
11452
11453         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
11454
11455         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
11456
11457 2007-05-29  Robert Jordan  <robertj@gmx.net>
11458
11459         * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
11460
11461 2007-05-28  Zoltan Varga  <vargaz@gmail.com>
11462
11463         * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
11464
11465 2007-05-25  Jonathan Chambers  <joncham@gmail.com>
11466
11467        * marshal.c: Fix interface lookup loops for
11468        cominterop_get_com_slot_for_method and 
11469        cominterop_get_method_interface. Only need to lookup
11470        if type is a class, else use interface type method is on.
11471
11472        Code is contributed under MIT/X11 license.
11473
11474 2007-05-25  Sebastien Pouliot  <sebastien@ximian.com>
11475
11476         * reflection.c: HasSecurity can be present even if no specially 
11477         encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
11478         SecurityAttribute). Fix CAS regression tests on buildbot.
11479
11480 2007-05-24  Jonathan Chambers  <joncham@gmail.com>
11481
11482        * appdomain.c: Add configure checks for header files.
11483        * image.c: Add configure checks for header files.
11484        * file-io.c: Add configure checks for header files.
11485        * debug-mono-symfile.c: Add configure checks for header files.
11486        * threadpool.c: Add configure checks for header files.
11487        * console-io.c: Add configure checks for header files.
11488        * profiler.c: Add configure checks for header files.
11489        * rawbuffer.c: Add configure checks for header files.
11490        * icall.c: Add configure checks for header files.
11491        * rand.c: Add configure checks for header files.
11492        * socket-io.c: Add configure checks for header files.
11493
11494        Code is contributed under MIT/X11 license.
11495
11496 2007-05-24  Zoltan Varga  <vargaz@gmail.com>
11497
11498         * reflection.c (mono_custom_attrs_from_builders): Remove the 
11499         assertion as it breaks the build.
11500         
11501         * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
11502
11503         * reflection.c (lookup_custom_attr): Make a copy here too.
11504
11505         * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
11506         dynamic images.
11507
11508         * class.c (mono_class_init): Avoid accessing the metadata in dynamic
11509         images.
11510
11511         * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
11512         info.
11513
11514 2007-05-22  Zoltan Varga  <vargaz@gmail.com>
11515
11516         * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
11517         (load_cattr_value): Ditto.
11518
11519 2007-05-20  Zoltan Varga  <vargaz@gmail.com>
11520
11521         * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
11522
11523 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
11524
11525         * threads.c: In "start_wrapper", set apartment_state to MTA if
11526         apartment_state is Unknown and we're running on 2.0 profile or
11527         higher.
11528         * object.c: In "mono_runtime_exec_main", if STAThread is not applied
11529         to main method, then set apartment_state to Unknown on 1.0 profile,
11530         and MTA on 2.0 profile.
11531
11532 2007-05-16  Jb Evain  <jb@nurv.fr>
11533
11534         * class-internals.h (MonoDefaults): Add an attribute_class and
11535           customattribute_data_class.
11536         * domain.c (mono_init_internal): Populate them.
11537         * reflection.c: Use them to remove duplicates. Make a vew
11538         MonoClass variables `static'.
11539
11540 2007-05-15  Massimiliano Mantione  <massi@ximian.com>
11541
11542         * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
11543         step in implementing IMT, so that all isinst checks now can go
11544         through the bitmap.
11545         This was needed because vtables for TransparentProxy need to look
11546         like the vtable of the "target" class, so they need to point to
11547         its interface bitmap directly.
11548
11549         * object.c: inside "mono_class_create_runtime_vtable" and
11550         "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
11551
11552 2007-05-15  Atsushi Enomoto  <atsushi@ximian.com>
11553
11554         * object-internals.h
11555           culture-info.h : added territory field in MonoCulture and
11556           CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
11557         * locales.c : fill territory field above too.
11558         * culture-info-table.h : regenerated.
11559
11560 2007-05-12  Zoltan Varga  <vargaz@gmail.com>
11561
11562         * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
11563         Fixes #81599.
11564
11565 2007-05-11  Jonathan Chambers  <joncham@gmail.com>
11566
11567         * object.c: Always initialize apartment, even if 
11568         there is no custom attributes on entry point.
11569         
11570         Code is contributed under MIT/X11 license.
11571
11572 2007-05-10  Jonathan Chambers  <joncham@gmail.com>
11573
11574         * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
11575         * metadata.c: If no encoding is set, check for unicode
11576         on class.
11577         
11578         Code is contributed under MIT/X11 license.
11579
11580 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
11581
11582         * threads.c: Handle if mono_thread_current returns NULL 
11583         
11584         Code is contributed under MIT/X11 license.
11585
11586 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
11587
11588         * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
11589         in start_wrapper. Added mono_thread_init_apartment_state and
11590         mono_thread_cleanup_apartment_state.
11591         * object.c: Initialize thread apartment state on main thread
11592         by checking for STAThreadAttribute on entry point.
11593         * object-internals.h: Add apartment_state field to MonoThread.
11594         * threads-types.h: Add unmanaged definition of 
11595         System.Threading.ApartmentState, MonoThreadApartmentState.
11596         
11597         Code is contributed under MIT/X11 license.
11598         
11599 2007-05-08  Jonathan Chambers  <joncham@gmail.com>
11600
11601         * class.c: Fix windows build.
11602         * class-internals.h: Fix windows build.
11603         
11604         Code is contributed under MIT/X11 license.
11605
11606 2007-05-08  Robert Jordan  <robertj@gmx.net>
11607
11608         * process.c (CreateProcess_internal):
11609         Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
11610         .CreateNoWindow was specified. Fixes #81496.
11611
11612 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
11613
11614         * class-internals.h: Removed "MonoClass.interface_offsets" as a first
11615         step in implementing IMT, replaced it with two compact arrays
11616         (interfaces_packed and interface_offsets_packed) and a bitmap that
11617         is used for isinst checks (interface_bitmap).
11618
11619         * class.c: (compare_interface_ids): compare function to pass to
11620         bsearch when looking for an interface with a given id.
11621         (mono_class_interface_offset): reimplemented using bsearch on
11622         interfaces_packed, getting the offset from interface_offsets_packed.
11623         (print_implemented_interfaces): utility debugging function.
11624         (setup_interface_offsets): reworked to initialize interfaces_packed,
11625         interface_offsets_packed and interface_bitmap.
11626
11627         * object.c: replaced all accesses to "MonoClass.interface_offsets"
11628         with uses of interfaces_packed and interface_offsets_packed.
11629
11630 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
11631
11632         * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
11633         mono_class_interface_offset prototype to wrap all accesses to
11634         "MonoClass.interface_offsets".
11635
11636         * class.c: Implemented mono_class_interface_offset, and wrapped all
11637         accesses to "MonoClass.interface_offsets".
11638
11639         * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
11640         "MonoClass.interface_offsets".
11641
11642 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
11643
11644         * icall.c, icall-def.h: implemented new GetFieldFromHandle and
11645         GetMethodFromHandle overloads (bug #78637).
11646
11647 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
11648
11649         * assembly.c: parse ProcessorArchitecture in assembly name and ignore
11650         it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
11651
11652 2007-05-01  Zoltan Varga  <vargaz@gmail.com>
11653
11654         * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
11655         #81498.
11656
11657         * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
11658         gracefully.
11659         (mono_custom_attrs_from_index): Ditto.
11660
11661         * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. 
11662         Fixes #81501.
11663
11664 2007-04-30  Zoltan Varga  <vargaz@gmail.com>
11665
11666         * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
11667         is now allocated from a mempool.
11668
11669 2007-04-28  Zoltan Varga  <vargaz@gmail.com>
11670
11671         * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
11672         caller holds threads_lock, leading to deadlocks. Fixes #81476.
11673
11674 2007-04-26  Zoltan Varga  <vargaz@gmail.com>
11675
11676         * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
11677         mono_loader_clear_error () too late. Fixes #81463.
11678
11679 2007-04-26  Atsushi Enomoto  <atsushi@ximian.com>
11680
11681         * culture-info-table.h : regenerated.
11682
11683 2007-04-25  Zoltan Varga  <vargaz@gmail.com>
11684
11685         * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
11686         is missing.
11687
11688 2007-04-25  Dick Porter  <dick@ximian.com>
11689
11690         * Makefile.am: Put the mingw enforced-optimisation back into the
11691         PLATFORM_WIN32 section.
11692
11693 2007-04-24  Zoltan Varga  <vargaz@gmail.com>
11694
11695         * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
11696         patch.
11697
11698         * image.c (mono_image_load_module): New API function to load a module reference.
11699
11700         * image.c (load_modules): Load modules lazily. Fixes #80812.
11701
11702         * class.c (mono_class_from_typeref): Use mono_image_load_module.
11703         
11704         * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
11705
11706         * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this 
11707         to mono_image_load_module_dynamic.
11708
11709 2007-04-23  Jonathan Chambers  <joncham@gmail.com>
11710
11711         * marshal.c: Fix calling convention for CCW on non-windows
11712         platforms. STDCALL on windows, CDECL everywhere else to work 
11713         with XPCOM and MainWin COM.
11714         
11715         Code is contributed under MIT/X11 license.
11716
11717 2007-04-23  Martin Baulig  <martin@ximian.com>
11718
11719         Fix #80969.
11720
11721         * loader.c
11722         (method_from_memberref): Added `gboolean *used_context' argument.
11723         (mono_get_method_from_token): Likewise.
11724         (mono_get_method_full): Don't insert the method in the cache when
11725         `used_context' is true.
11726
11727 2007-04-23  Raja R Harinath  <rharinath@novell.com>
11728
11729         * monodiet.c (add_types_from_method): Fix "wrong type" warning.
11730
11731         * reflection.c (mono_reflection_bind_generic_parameters): Don't
11732         create new MonoTypes for returned types.
11733         * class.c (mono_generic_class_get_class): Export mono-internal.
11734         * class-internals.h: Update to changes.
11735
11736 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
11737
11738         * threadpool.c, threadpool.h, icall-def.h: patch from
11739         Robert Jordan to implemnt ThreadPool.SetMaxThreads.
11740
11741 2007-04-18  Zoltan Varga  <vargaz@gmail.com>
11742
11743         * threads.c (mono_thread_get_stack_bounds): Fix windows build.
11744         
11745         * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
11746
11747         * threads.c (mono_thread_get_stack_bounds): New helper function.
11748
11749         * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
11750         Correctly compute stack bounds when attaching. Fixes #81394.
11751
11752 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
11753
11754         * reflection.c: fix handling of doubles in custom attributes
11755         for the arm-fpa format (bug #81368).
11756
11757 2007-04-18  Raja R Harinath  <rharinath@novell.com>
11758
11759         * reflection.c (assembly_add_win32_resources): Mildly relax an
11760         bounds check to let the end pointer point just past the end of the
11761         allocated buffer.  (may fix #81384)
11762
11763 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
11764
11765         * culture-info-table.h : regenerated.
11766
11767 2007-04-07  Zoltan Varga  <vargaz@gmail.com>
11768
11769         * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
11770         the thread is aborted early.
11771
11772 2007-04-05  Dick Porter  <dick@ximian.com>
11773
11774         * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
11775         FindFirstFile()/FindNextFile() to find entries.  This lets the
11776         io-layer versions use MONO_IOMAP compatibility helpers.  Fixes bug
11777         81038.
11778
11779         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
11780         the parameters of
11781         ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
11782
11783 2007-04-04  Martin Baulig  <martin@ximian.com>
11784
11785         * debug-helpers.c
11786         (mono_method_desc_full_match): Add support for nested classes.
11787
11788 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
11789
11790         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
11791
11792 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
11793
11794         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
11795         waiting for too many threads.
11796
11797 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
11798
11799         * environment.c: Fix return value check on uname so we can get the 
11800         executing version on Solaris operating systems.
11801
11802 2007-03-28  Jb Evain  <jbevain@gmail.com>
11803
11804         * class.c (mono_type_get_name_recurse): Complete the
11805         fix for the creation of assembly qualified names for
11806         pointer types. Fixes #81208.
11807
11808 2007-03-27  Dick Porter  <dick@ximian.com>
11809
11810         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
11811         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
11812         changed.
11813
11814         * threads.c
11815         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
11816         the value of ReleaseMutex().
11817
11818 2007-03-27  Dick Porter  <dick@ximian.com>
11819
11820         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
11821         in little-endian order, not network endian, so must be converted
11822         to host endian here.  Fixes bug 80593.
11823
11824 2007-03-22  Jb Evain  <jbevain@gmail.com>
11825
11826         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
11827         qualified names for pointer types. Fixes #81208.
11828
11829 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
11830
11831         * marshal.c: Add support for PreserveSigAttribute. 
11832         
11833         Code is contributed under MIT/X11 license.
11834
11835 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
11836
11837         * process.c: Fix endianness issues. Fixes #81126.
11838
11839         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
11840         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
11841
11842         * image.c (mono_image_lookup_resource): Make this work on big-endian
11843         machines.Change API contract so the caller needs to free the return value.
11844         
11845         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
11846         API change.
11847         
11848 2007-03-14  Martin Baulig  <martin@ximian.com>
11849
11850         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
11851         mono_type_get_desc() as well.
11852
11853 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
11854
11855         * icall.c:  Fix environ access in VS.  
11856         
11857 2007-03-13  Alp Toker  <alp@atoker.com>
11858
11859         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
11860         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
11861         #63841.
11862
11863 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
11864
11865         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
11866         circular references among dynamic methods. Fixes #81091.
11867
11868         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
11869
11870 2007-03-09  Martin Baulig  <martin@ximian.com>
11871
11872         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
11873
11874 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
11875
11876         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
11877         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
11878         
11879         Code is contributed under MIT/X11 license.
11880         
11881 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
11882
11883         * loader.c: Reapply patch for bug #79424.
11884
11885 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
11886
11887         * metadata.c (mono_type_to_unmanaged): Only convert object to
11888         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
11889
11890 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
11891
11892         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
11893         (and incorrectly set) is_reference field from MonoGenericInst.
11894
11895 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
11896
11897         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
11898         a little earlier.
11899
11900         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
11901
11902         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
11903
11904 2007-03-05  Miguel de Icaza  <miguel@novell.com>
11905
11906         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
11907         FileOptions.1 value to mean "temporary", map that to
11908         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
11909
11910         Fixes 80688
11911
11912 2007-03-03  Marek Habersack  <mhabersack@novell.com>
11913
11914         * appdomain.c: implement MS .Net style shadow copying. Copies of
11915         the assemblies are made in a subdirectory of the dynamic base
11916         directory, the assembly names are preserved.
11917         Copy .mdb and .config files along with the assemblies being shadowed.
11918
11919 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
11920
11921         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
11922         (emit_marshal_handleref): Ditto.
11923
11924         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
11925         on Visual C++. Fixes #80671.
11926
11927 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
11928
11929         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
11930         for clone operations.
11931
11932 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
11933
11934         * marshal.c: Fix warnings.
11935
11936 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
11937
11938         * loader.c: allow case-insensitive matching of the dll name
11939         in dllmap handling when prefixed with "i:".
11940
11941 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
11942
11943         * threads.c: Fix #ifdef for dummy_apc function for VS.
11944
11945 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
11946
11947         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
11948
11949 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
11950         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
11951         giving precedence to the methods with a fully qualified name
11952         (InterfaceName.MethodName) when building the interface sections
11953         of the vtable.
11954
11955 2007-02-16  Dick Porter  <dick@ximian.com>
11956
11957         * threadpool.c (append_job): Fix fast-path array handling, so it's
11958         less likely the array will grow exponentially when the load is
11959         heavy.
11960
11961 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
11962
11963         * metadata-internals.h, loader.c: fix dllmap lookup order
11964         for non-function maps, too, and prepare for fallback code.
11965
11966 2007-02-12  Robert Jordan  <robertj@gmx.net>
11967
11968         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
11969         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
11970         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
11971         GlobalFree. Fixes a part of bug #77075.
11972
11973 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
11974
11975         * loader.c: implemented typedef parent in field memberref.
11976
11977 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
11978
11979         * marshal.c: Fix warnings and remember to call Release on
11980         IUnknown of RCW.
11981         
11982         Code is contributed under MIT/X11 license.
11983
11984 2007-02-10  Miguel de Icaza  <miguel@novell.com>
11985
11986         * class-internals.h: Add MonoHandleRef definition, and
11987         handleref_class to mono_defaults. 
11988
11989         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
11990         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
11991
11992         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
11993         (do nothing on this stage)
11994         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
11995         (emit_marshal_handleref): New method, used for argument handling
11996         of HandleRefs. 
11997
11998 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
11999
12000         * class.c (mono_class_setup_parent): Lazily init com types.
12001         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
12002         init com types.
12003         * object.c (mono_remote_class_vtable): Lazily init com types.
12004         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
12005         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
12006         * domain-internals.h: Expose mono_init_com_types.
12007         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
12008         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
12009         Add support for COM Callable Wrapper marshalling.
12010         * marshal.h: Add icall definitions.
12011         * gc.c: Handle freeing of CCWs in finalizer code.
12012         
12013         Code is contributed under MIT/X11 license.
12014
12015 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
12016
12017         * reflection.c: changed all the signature encoding code to use
12018         a variable-sized buffer.
12019
12020 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
12021
12022         * marshal.c: locking fixes: never take the loader lock
12023         or other runtime locks when holding the marshal lock
12024         (fixes bug#80664).
12025
12026 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
12027
12028         * marshal.c: make the delegate function pointer mapping
12029         work for the moving GC.
12030
12031 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
12032
12033         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
12034         for bug #80618.
12035
12036 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
12037
12038         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
12039         gmodule.
12040
12041 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
12042
12043         * threadpool.c: made the code moving-GC safe.
12044
12045 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
12046
12047         * assembly.c, boehm-gc.c, class-internals.h, class.c,
12048         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
12049         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
12050         warning cleanup.
12051         * reflection.c: warning cleanup, some threading and moving GC fixes.
12052
12053 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
12054
12055         * class.c, loader.c: create the needed Set/Get/Address array methods
12056         as well as the .ctors in mono_class_init (), fixes bug #80567.
12057
12058 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
12059
12060         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
12061         we doesn't decrease its alignment. Should fix the sparc build.
12062
12063 2007-01-24  Dick Porter  <dick@ximian.com>
12064
12065         * socket-io.c
12066         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
12067         Create the returned object if we need to ignore an unsupported
12068         socket option.  Fixes a segfault reported by Atsushi.
12069
12070 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
12071
12072         * class.c, object.c: restrict GC-tracked fields to
12073         UIntPtr fields used inside corlib, so we provide better
12074         type info to the GC and also allow broken packing as in
12075         bug #80580.
12076
12077 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
12078
12079         * sgen-gc.c: removed duplicated function.
12080
12081 2007-01-19  Miguel de Icaza  <miguel@novell.com>
12082
12083         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
12084         value that means that the value is not supported, but that we
12085         should not return a failure, but instead report this as a
12086         successful operation.
12087
12088 2007-01-19  Raja R Harinath  <rharinath@novell.com>
12089
12090         Fix tests/bug79956.2.il
12091         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
12092         (mono_generic_class_get_class): If the generic definition in an
12093         enum, copy over other fields related to it.
12094
12095 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
12096
12097         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
12098         genericinst enums (bug #79215).
12099
12100 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
12101         * class.c: Fix bug 80307.
12102
12103 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
12104
12105         * image.c: if the file table is not present, try to load
12106         all the modules, since we don't have info about them
12107         having or not metadata (bug #80517).
12108         * assembly.c: allow mono_assembly_load_references () to
12109         work for netmodules.
12110
12111 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
12112
12113         * image.c, metadata-internals.h, object.c: execute module
12114         cctors when running on the 2 runtime if present (bug #80487).
12115
12116 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
12117
12118         * icall.c: optimized InitializeArray() on bigendian.
12119
12120 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
12121
12122         * icall.c: fix for the broken ARM FPA double format.
12123
12124 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
12125
12126         * icall.c: handle endian issues for r4 and r8 types, too, in
12127         the InitializeArray() icall.
12128
12129 2007-01-15  Miguel de Icaza  <miguel@novell.com>
12130
12131         * loader.c (mono_loader_error_prepare_exception): Clear the error
12132         once we have extracted the information from it, do this before we
12133         call into the JIT's class loading mechanisms.
12134
12135         * object.c (mono_class_create_runtime_vtable): Do not clear the
12136         loader error before calling mono_class_get_exception_for_failure
12137         as the loader error is needed inside
12138         mono_class_get_exception_for_failure to throw the error (thinko).
12139
12140         Fixes #80521
12141         
12142 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
12143
12144         * reflection.c: align fields rva data so it's faster to load at
12145         runtime.
12146
12147 2007-01-12  Raja R Harinath  <rharinath@novell.com>
12148
12149         Prepare to simplify GenericMethod handling.
12150         * class-internals.h (mono_method_get_context): New accessor function.
12151         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
12152         rather than directly accessing '->context' field.
12153
12154         * class-internals.h (_MonoGenericParam.method): Move ...
12155         (_MonoGenericContainer): ... here.  Add into union with klass field.
12156         * class.c, icall.c, loader.c, metadata.c, reflection.c:
12157         Update to changes.
12158
12159 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
12160
12161         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
12162         the wrapper type enum and reduce relocations.
12163
12164 2007-01-12  Raja R Harinath  <rharinath@novell.com>
12165
12166         * reflection.c (inflate_mono_method): Reuse method instantiation
12167         from the generic method, if available.
12168
12169 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
12170
12171         * marshal.c (emit_marshal_variant): Fix conv_arg
12172         type in last commit, based on whether parameter is byref.
12173         
12174 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
12175
12176         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
12177         marshalling.
12178         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
12179         MONO_TYPE_OBJECT back for VARIANT support.
12180
12181 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
12182
12183         * marshal.c, marshal.h, icall-def.h: Implement 
12184         Marshal.ReAllocCoTaskMem.
12185
12186 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
12187
12188         * marshal.c: memory retention fixes: use the proper
12189         image cache for runtime_invoke method lookups.
12190
12191 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
12192
12193         * mempool.c: added code to help debug mempool allocations.
12194
12195 2007-01-11  Dick Porter  <dick@ximian.com>
12196
12197         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
12198         support (experimenting with faking it with IP_MTU_DISCOVER for
12199         systems that don't have IP_DONTFRAGMENT.)
12200         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
12201         icall.
12202
12203         * icall-def.h: new System.Net.Sockets.Disconnect icall.
12204
12205         * socket-io.h: Add new fields to MonoSocketAsyncResult
12206         corresponding to the new ones in Socket.cs.
12207
12208 2007-01-11  Raja R Harinath  <rharinath@novell.com>
12209
12210         Fix IronPython regression mentioned in #80249
12211         * metadata.c (do_mono_metadata_parse_generic_class): Clear
12212         'cached_context' field, since it may have been initialized as a
12213         side-effect of metadata parsing.
12214
12215         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
12216         (_MonoGenericClass.cached_class): Move here and rename from lone
12217         remaining field of ...
12218         (_MonoInflatedGenericClass): ... this.  Remove.
12219         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
12220         to changes.
12221
12222         Fix mcs/tests/test-128.cs regression.
12223         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
12224         2007-01-10 change below.
12225         [MONO_TYPE_OBJECT]: Recurse into array case.
12226
12227 2007-01-11  Raja R Harinath  <harinath@gmail.com>
12228
12229         * class-internals.h (mono_get_inflated_generic_class): Remove.
12230         * class.c (mono_get_inflated_generic_class): Remove.
12231         (mono_generic_class_get_class): Rename from
12232         mono_class_create_generic.
12233         (mono_class_from_mono_type) [GENERICINST]: Use it.
12234         * reflection.c, metadata.c: Update to changes.  Use
12235         'mono_class_from_mono_type'.
12236
12237 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
12238
12239         * reflection.c: use passed type when encoding an array element
12240         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
12241
12242 2007-01-09  Robert Jordan  <robertj@gmx.net>
12243
12244         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
12245         result arguments (someDelegate.EndInvoke (unrelatedAres)).
12246         Fixes bug #80392.
12247
12248 2007-01-09  Raja R Harinath  <rharinath@novell.com>
12249
12250         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
12251
12252         * object.c (set_value): Avoid aliasing between type->data.klass
12253         and type->data.generic_class.
12254
12255         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
12256
12257 2007-01-08  Raja R Harinath  <rharinath@novell.com>
12258
12259         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
12260         between type->data.klass and type->data.generic_class.
12261
12262 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
12263
12264         * marshal.c: In MS.NET, StringBuilder objects are not copied by
12265         value in out parameters.
12266
12267 2007-01-08  Raja R Harinath  <rharinath@novell.com>
12268
12269         Simplify invariant for MonoGenericClass::klass field.
12270         * class.c (mono_class_create_generic): Verify 'klass' is null.
12271         * metadata.c (do_mono_metadata_parse_generic_class): Don't
12272         initialize 'klass' field.
12273
12274 2007-01-05  Raja R Harinath  <rharinath@novell.com>
12275
12276         Ongoing work to avoid redundant data and simplify invariants.
12277         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
12278         'generic_class', and change type to a GenericInst.
12279         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
12280         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
12281
12282 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
12283
12284         * class.c : skip io-layer under PLATFORM_WIN32.
12285
12286 2007-01-03  Tor Lillqvist  <tml@novell.com>
12287
12288         Fix #80305: In a bundled executable, look in the bundled exe
12289         assembly to determine the runtime version. Add the possibility to
12290         bundle also the machine.config file.
12291         
12292         * assembly.c (mono_assembly_open_from_bundle): Make
12293         non-static. Allow being called even if we have no bundled
12294         assemblies, and return NULL right away in that case.
12295
12296         * domain-internals.h: Declare mono_assembly_open_from_bundle()
12297         here.
12298
12299         * domain.c (app_config_parse): Take an assembly exe file name as
12300         parameter instead of a config file name. Check for a bundled
12301         config file for that assembly by calling
12302         mono_config_string_for_assembly_file() (see below) before looking
12303         for one in the file system.
12304         (get_runtimes_from_exe): Corrsponding change to call of
12305         app_config_parse().
12306         (get_runtimes_from_exe): Check for bundled assembly exe file first
12307         by calling mono_assembly_open_from_bundle(). If no bundled
12308         assembly exe file is found, call mono_image_open() as before to
12309         look it up in the file system.
12310
12311         * mono-config.c: Add variable bundled_machinec_onfig.
12312         (mono_config_string_for_assembly_file): New function.
12313         (mono_config_for_assembly): Move code snippet that looks for a
12314         bundled assembly .config file into the above new function. Call
12315         it.
12316         (mono_register_machine_config, mono_get_machine_config): New
12317         functions to set and retrieve
12318
12319         * assembly.h: Declare mono_register_machine_config().
12320
12321         * mono-config.h: Declare mono_get_machine_config() and
12322         mono_config_string_for_assembly_file().
12323
12324         * icall.c: No declaration of environ necessary on Win32. It is
12325         declared (as a macro expanding to a function call) in stdlib.h.
12326         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
12327         New internal mono function. Returns the value of
12328         mono_get_machine_config() as a Mono string.
12329
12330         * icall-def.h: Add get_bundled_machine_config().
12331
12332 2007-01-04  Raja R Harinath  <rharinath@novell.com>
12333
12334         Remove redundant field
12335         * class-internals.h (_MonoGenericContext.container): Remove field.
12336         * loader.c (mono_method_get_signature_full): Don't parse a
12337         "container" for a signature parse when the signature is inflated
12338         immediately.
12339         (method_from_methodspec): Likewise, for a generic_inst.
12340         * class.c, metadata.c, reflection.c: Update to changes.
12341
12342 2006-01-04  Raja R Harinath  <rharinath@novell.com>
12343
12344         * class-internals.h (_MonoGenericClass): Rename 'context' field to
12345         'cached_context', and change semantics -- it starts off NULL, and
12346         is initialized on demand.
12347         * class.c (mono_generic_class_get_context): New accessor to
12348         replace 'context' field accesses.
12349         (mono_class_get_context): New helper.
12350         (*): Update to changes.
12351         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
12352
12353 2007-01-03  Miguel de Icaza  <miguel@novell.com>
12354
12355         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
12356         before the memcpy.   Fixes Marshal2 regression.
12357
12358 2007-01-02  Jb Evain  <jbevain@gmail.com>
12359
12360         * blob.h: add a MONO_TYPE_ENUM definition
12361         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
12362         fix the encoding of arrays of enums in custom attributes.
12363
12364         Fixes #79666.
12365
12366 2007-01-01  Miguel de Icaza  <miguel@novell.com>
12367
12368         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
12369         string is null terminated, but only cut the string short if it
12370         overflows the buffer.   
12371         
12372         (mono_string_to_byvalstr): Also fix this routine.   The code here
12373         was not properly terminating a string (it was only terminated
12374         because of the previous catch-all memset). 
12375
12376         I left the memset, because I do not know if applications expect
12377         the runtime to clear this region. 
12378
12379         Fixes #79944.
12380
12381         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
12382         Clear the error before returning to unmanaged code to prevent the
12383         runtime from being confused later on (fixes  80420).
12384         (ves_icall_type_from_name): Always call mono_loader_clear_error
12385         after parsing a type that could have failed.
12386         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
12387
12388         * loader.c (mono_loader_clear_error): Fix indentation.
12389
12390 2006-12-28  Martin Baulig  <martin@ximian.com>
12391
12392         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
12393
12394 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
12395
12396         * reflection.c: patch from Rolf Bjarne Kvinge to fix
12397         getting a token for an EnumBuilder.
12398
12399 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
12400
12401         * reflection.c: be more careful in case resource generation
12402         fails to create the data array.
12403
12404 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
12405
12406         * sgen-gc.c: write barrier for clone and fix unregister handles.
12407
12408 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
12409
12410         * reflection.c: some fixes needed in the generics code for the moving GC.
12411
12412 2006-12-22  Robert Jordan  <robertj@gmx.net>
12413
12414         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
12415         account. Fixes bug #80299.
12416
12417 2006-12-21  Raja R Harinath  <rharinath@novell.com>
12418
12419         Fix WaitHandle usage in delegates.
12420         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
12421         * object.c (mono_wait_handle_new): Use the property set method to
12422         initialize the handle.
12423         (mono_wait_handle_get_handle): New.
12424         * threadpool.c (mono_async_invoke): Use it.
12425         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
12426         Likewise.
12427         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
12428
12429 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
12430
12431         * marshal.c (emit_marshal): Call emit_marshal_variant and
12432         emit_marshal_com_interface when applicable.
12433         (emit_marshal_variant, emit_marshal_com_interface): Add
12434         methods for this case and remove if's from emit_marshal_object.
12435         
12436 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
12437
12438         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
12439
12440 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
12441
12442         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
12443         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
12444         and GlobalFree on Windows. Remove FIXME.
12445
12446 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
12447
12448         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
12449         implementation for managed objects.
12450
12451 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
12452
12453         * object.c: implemented code to be used for checking
12454         that no reference field overlaps with non-references.
12455
12456 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
12457
12458         * threadpool.c: fix queue code to be compatible with the
12459         moving GC.
12460
12461 2006-12-18  Miguel de Icaza  <miguel@novell.com>
12462
12463         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
12464         in structures by throwing ArgumentNullException.
12465
12466         (emit_marshal_safehandle): Also when they are null parameters.
12467
12468         (emit_marshal_safehandle): Add support for ref
12469         SafeHandles parameters
12470
12471 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
12472
12473         * profiler.c: updated to use the mono-dl API instead of
12474         gmodule.
12475
12476 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
12477
12478         * profiler.c: updated to use the mono-dl dynamic loading
12479         API instead of gmodule.
12480
12481 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
12482
12483         * profiler.c: use readlink, older versions of glib don't have
12484         g_file_read_link ().
12485
12486 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
12487
12488         * profiler.c: try to detect the path to mono if libc fails to provide
12489         a useful name (bug #80286).
12490
12491 2006-12-16  Raja R Harinath  <rharinath@novell.com>
12492
12493         Fix #80242
12494         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
12495         instance, use the generic type definition instead.
12496         (ves_icall_Type_GetNestedTypes): Likewise.
12497         * class.c (mono_class_create_generic): Always set the
12498         nested_classes of a generic instance to NULL, even if the generic
12499         type definition has nested types.
12500
12501 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
12502
12503         * marshal.c (mono_string_from_bstr): Revert previous Windows change
12504         and fix on Linux.
12505         
12506 2006-12-15  Miguel de Icaza  <miguel@novell.com>
12507
12508         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
12509         my arguments were in the wrong order.   I also fixed the Windows
12510         version which seems to have had the same issue.
12511
12512         (mono_free_bstr): On Unix, this is g_free.
12513         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
12514         conversions (for the tests in corlib to pass).
12515
12516 2006-12-14  Miguel de Icaza  <miguel@novell.com>
12517
12518         * marshal.c (emit_ptr_to_object_conv): For now, ignore
12519         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
12520         exception if a ref SafeHandle in a struct has changed).
12521         
12522         (emit_struct_conv): Do not perform layout checks for classes
12523         derived from SafeHandle, as those are specially handled. 
12524
12525         (emit_object_to_ptr_conv): Add support for
12526         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
12527
12528         (emit_marshal_safehandle): Implement conversion of return values
12529         of safehandles (MARSHAL_ACTION_CONV_RESULT).
12530         
12531         * threads.c: WaitHandle now is compiled with two different handles
12532         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
12533         for 2.0.
12534         
12535         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
12536         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
12537         these routines to cope with both kinds of fields.
12538
12539 2006-12-12  Miguel de Icaza  <miguel@novell.com>
12540
12541         * metadata.c (mono_type_to_unmanaged): Handle the case where
12542         type->data.klass is a SafeHandle, and in that case, return the
12543         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
12544         MONO_MARSHAL_CONV_SAFEHANDLE. 
12545
12546 2006-12-11  Miguel de Icaza  <miguel@novell.com>
12547
12548         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
12549         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
12550         calling emit_marshal_object.
12551
12552         (emit_marshal_safehandle): Implement marshalling of
12553         SafeHandle parameters (no ref support yet).
12554
12555         (MarshalAction): Document the defines as I implement
12556         them for SafeHandle.
12557
12558         (emit_marshal_object): indentation police.
12559
12560         * class-internals.h: Define MonoSafeHandle.
12561         Add safehandle_class to MonoDefaults type.
12562
12563         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
12564         list of classes to check for fields. 
12565
12566         * domain.c (mono_init_internal): Add SafeHandle to the list of
12567         mono_defaults loaded.
12568
12569 2006-12-15  Raja R Harinath  <rharinath@novell.com>
12570
12571         Fix #80253
12572         * reflection.c (mono_reflection_bind_generic_parameters): If the
12573         generic type definition is a type builder, ensure that it is fully
12574         initialized before instantiating it.  Kill some dead code.
12575
12576 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
12577
12578         * object.c: clear the loader_error () before loading
12579         more metadata stuff (bug #80258).
12580
12581 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
12582
12583         * icall.c, icall-defs.h: type modifiers icalls for
12584         parameters and properties.
12585
12586 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
12587
12588         * object.c, icall.c: fixed warnings.
12589
12590 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
12591
12592         * marshal.c: fixed a couple of leaks and coding style in a few places.
12593
12594 2006-12-08  Dick Porter  <dick@ximian.com>
12595
12596         * process.c: Cope with NULL ProcessStartInfo arguments on windows
12597         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
12598         80173.
12599
12600 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
12601
12602         * process.c: ProcessStartInfo may have only filename set and
12603         arguments can be NULL.
12604
12605 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
12606
12607         * icall.c: fix leak found by Robert Jordan.
12608
12609 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
12610
12611         * marshal.c, marshal.h: generate managed method to access an element
12612         of a multi-dimensional array.
12613
12614 2006-11-30  Paolo Molaro (lupus@ximian.com)
12615
12616         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
12617
12618 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
12619
12620         * icall.c: back out GetFields () fix until the serialization code is
12621         fixed to not depend on the incorrect behaviour.
12622
12623 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
12624
12625         * profiler.c: provide defaults if none are set.
12626
12627 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
12628
12629         * Makefile.am, attrdefs.h: new public header file with
12630         constants for attributes for use by embedders.
12631
12632 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
12633
12634         * icall.c: GetFields () fix for bug #80064.
12635
12636 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
12637
12638         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
12639         removed long unused icalls.
12640
12641 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
12642   
12643         * marshal.c: 
12644                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
12645                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
12646                 can be generated without a delegate class.
12647                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
12648         
12649         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
12650
12651 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12652
12653         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
12654         #80069.
12655
12656 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
12657
12658         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
12659         icall-def.h: added icalls needed by System.GC.
12660
12661 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
12662
12663         * loader.c: ensure the class in catch clauses is handled
12664         correctly for generics methods (fixes bug#79980).
12665
12666 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
12667
12668         * monitor.h, monitor.c: added mono_locks_dump () function
12669         to help debug deadlocks involving managed locks.
12670
12671 2006-11-13  Dick Porter  <dick@ximian.com>
12672
12673         * file-io.c (get_file_attributes): If the file is a symlink try
12674         and get the stat data for the target, but also add the
12675         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
12676         the specs for the windows symlink support, but will probably have
12677         to be reworked when I have test data from a vista machine.  Fixes
12678         bug 79887.
12679
12680 2006-11-13  Dick Porter  <dick@ximian.com>
12681
12682         * gc.c (mono_domain_finalize): 
12683         * marshal.c (mono_delegate_begin_invoke): 
12684         * threadpool.c (socket_io_init, mono_thread_pool_init)
12685         (mono_thread_pool_finish): 
12686         * monitor.c (mono_monitor_try_enter_internal): 
12687         * threads.c (mono_thread_resume, mono_thread_init)
12688         (mono_thread_suspend_all_other_threads)
12689         (mono_thread_execute_interruption): 
12690         * appdomain.c (mono_domain_unload): Check for NULL error returns
12691         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
12692         75733.
12693
12694 2006-11-11  Miguel de Icaza  <miguel@novell.com>
12695
12696         * process.c
12697         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
12698         Only close the handle if the value of the handle is not
12699         INVALID_HANDLE_VALUE.  This just makes the process a bit more
12700         robust.
12701
12702         Improvement for #75733, so that we do not run into this problem. 
12703
12704         
12705         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
12706         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
12707         internal variables.  Fixes #79462 
12708         
12709
12710 2006-11-09  Dick Porter  <dick@ximian.com>
12711
12712         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
12713         Use poll() not select().  Fixes bug 79397.
12714
12715 2006-11-09  Raja R Harinath  <rharinath@novell.com>
12716
12717         Fix #79872
12718         * assembly.c (mono_assembly_load_from_full): Check that the given
12719         image has an assembly manifest.
12720
12721 2006-11-09  Ankit Jain  <jankit@novell.com>
12722
12723         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
12724         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
12725         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
12726
12727 2006-11-07  Dick Porter  <dick@ximian.com>
12728
12729         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
12730         Put the old resolver behaviour back for pre-2.0 profiles.
12731
12732 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
12733
12734         * threadpool.c: precise GC and locking fixes.
12735
12736 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
12737
12738         * class.c: don't load types that have an explicit unaligned
12739         managed reference. Provide better info in the TypeLoad exception.
12740         Part of the fix for bug #79744.
12741         * object.c: use the correct check for class type load issues.
12742
12743 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
12744
12745         * class.c: enforce alignment of fields with managed references
12746         even when Pack=1 is forced by the user (bug #77788).
12747
12748 2006-11-03  Dick Porter  <dick@ximian.com>
12749
12750         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
12751         If the address reverse lookup fails, return it as the hostname
12752         anyway.  Fixes bug 79721.
12753
12754 2006-11-03  Dick Porter  <dick@ximian.com>
12755
12756         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
12757         Fix build on Windows.
12758
12759 2006-11-02  Dick Porter  <dick@ximian.com>
12760
12761         * icall-def.h: 
12762         * object-internals.h: 
12763         * exception.c (mono_get_exception_thread_interrupted): 
12764         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
12765         Fixes bug 74525.
12766
12767         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
12768         Check for pending Thread.Interrupt.
12769
12770 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
12771         * loader.c: Fixed bug 79684.
12772
12773 2006-10-27  Dick Porter  <dick@ximian.com>
12774
12775         * file-io.c (get_file_attributes): Force symlinks to directories
12776         to be returned as a regular file.  Fixes bug 79733.
12777 2006-10-26  Dick Porter  <dick@ximian.com>
12778
12779         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
12780         CreateFile to open a directory then we need to set the
12781         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
12782
12783 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
12784
12785         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
12786         friends.
12787
12788 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
12789
12790         * sgengc.c: small cleanup of timer code.
12791
12792 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
12793
12794         * sgen-gc.c: fix some warnings and start adding support for
12795         complete object removal on domain unload.
12796
12797 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
12798
12799         * assembly.c: build_assembly_name should not consider a version
12800         number without build or revision number invalid. Fixes bug #79715.
12801
12802 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
12803
12804         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
12805         call kernel32 function OutputDebugString directly.
12806         
12807         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
12808         
12809 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
12810
12811         * reflection.c: small cleanup, using a function to insert a MonoString
12812         in the string heap.
12813
12814 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
12815
12816         * reflection.c: moving GC fixes.
12817
12818 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
12819
12820         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
12821         all the objects with finalizers belonging to an unloading appdomain.
12822
12823 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
12824
12825         * sgen-gc.c: added ability to allocate even when the nursery is fully
12826         pinned and fixed a couple of bugs.
12827
12828 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
12829
12830         * threads.h: Revert the last change for now.
12831
12832         * threads.h (mono_thread_get_pending_exception): Rename this to
12833         mono_thread_get_undeniable_exception ().
12834
12835 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
12836
12837         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
12838         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
12839         when fname does not refer to valid assembly. This result in a more
12840         meaningful error message.
12841         * exception.c: added mono_get_exception_bad_image_format2 which 
12842         constructs a BadImageFormatException using the ctor taking a custom
12843         message and the file name. Passing in a NULL msg results in a default
12844         message.
12845         * exception.h: define mono_get_exception_bad_image_format2 function.
12846         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
12847         when file name pointed to an invalid IL image. Use 
12848         mono_get_exception_file_not_found2 to construct FileNotFoundException,
12849         as this results in a more meaningful error message.
12850
12851 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
12852
12853         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
12854         #79465.
12855
12856 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
12857
12858         * metadata.c (mono_type_size): Change the align parameter to guint32 for
12859         consistency with the other _size functions.
12860         (mono_type_stack_size): Ditto.
12861
12862         * class.c object.c icall.c: Fix warnings caused by the above change.
12863
12864         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
12865
12866         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
12867
12868         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
12869
12870 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
12871
12872         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
12873         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
12874         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
12875         threadpool.h, threads-types.h: mark more internal functions.
12876
12877 2006-10-11  Dick Porter  <dick@ximian.com>
12878
12879         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
12880         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
12881         reproduce the bug even before applying the fix.)
12882
12883 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
12884
12885         * reflection.c: allow retrieving attributes for arguments in generic
12886         methods (bug #79241).
12887
12888 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
12889
12890         * debug-mono-symfile.c: properly check fopen () result (found by
12891         coverity).
12892
12893 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
12894
12895         * reflection.c: make error message clearer and fixed two
12896         issuelets found by Coverity.
12897
12898 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
12899
12900         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
12901
12902 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
12903
12904         * object-internals.h, gc-internal.h, profiler-private.h:
12905         mark internal functions.
12906
12907 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
12908
12909         * reflection.c: put data in the text section.
12910         * icall.c: recognize more types in type_from_typename ().
12911         * process.c, marshal.c: added some GC FIXMEs.
12912
12913 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
12914
12915         * loader.c: check for NULL before initializing.
12916
12917 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
12918
12919         * gc.c (finalizer_thread): Use a non-alertable wait here.
12920
12921         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
12922         until the correct solution is found.
12923
12924 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
12925
12926         * reflection.c (mono_module_get_object): Avoid an assert when operating on
12927         modules with no metadata. Fixes #79596.
12928
12929         * image.c (load_metadata_ptrs): Put back the error message when
12930         the #- heap is encountered since the support is not complete yet.
12931
12932 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
12933
12934         * gc.c: do not allow the user to SuppressFinalize () a
12935         delegate because it would leak the trampoline if present.
12936
12937 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
12938
12939         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
12940         PropertyPtr table.
12941
12942 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
12943
12944         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
12945
12946         * metadata.c (mono_metadata_get_param_attrs): Ditto.
12947
12948         * row-indexes.h: Add definitions for *Ptr tables.
12949
12950         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
12951
12952         * metadata.c (mono_metadata_translate_token_index): New helper function to
12953         translate table indexes used in uncompressed metadata.
12954         (mono_metadata_decode_table_row): Ditto.
12955         (mono_metadata_decode_table_row_col): Ditto.
12956
12957         * metadata.c: Add table schema for *Ptr tables.
12958
12959         * class.c loader.c: Use the new helper function to access the affected metadata
12960         tables.
12961         
12962         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
12963         #38532.
12964         
12965 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
12966
12967         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
12968         sequences which can be unbounded in size. Fixes #79583.
12969
12970 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
12971
12972         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
12973         static initialization.
12974
12975         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
12976
12977         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
12978
12979         * domain.c (mono_domain_free): Free up type_init_exception_hash.
12980
12981         * object.c (mono_runtime_class_init): Implement correct semantics when a static
12982         ctor fails, i.e. throw the same exception on subsequent accesses.
12983         
12984 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
12985
12986         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
12987         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
12988         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
12989         Handle marshalling of interfaces and VARIANTs contained in structs.
12990         
12991         Code is contributed under MIT/X11 license.
12992         
12993 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
12994
12995         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
12996         
12997         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
12998         mempool.
12999
13000 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13001
13002         * console-io.c: ignore previous SIGINT handler.
13003
13004 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
13005
13006         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
13007         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
13008         #79460, #79461, #79485.
13009
13010         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
13011
13012         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
13013         #79217.
13014
13015 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
13016
13017         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
13018         could be generated from it.
13019
13020 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
13021
13022         * rand.c: fix read loop to correctly handle EINTR.
13023
13024 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
13025
13026         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
13027         internal calls are defined to keep methods closer to the declaring
13028         type and allow a significant reduction in runtime relocations and
13029         memory usage.
13030
13031 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
13032
13033         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
13034         exception message to have FileNotFoundException use the default
13035         assembly load error message. Fixes bug #79426.
13036         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
13037
13038 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13039
13040         * threadpool.c: (start_thread_or_queue) use the root domain when
13041         creating the thread instead of the async object one.
13042
13043 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
13044
13045         * class.c, object.c, class-internals.h, reflection.c:
13046         for arrays, store element_size inside MonoClass (speedup
13047         for array object creation).
13048
13049 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
13050
13051         * icall.c: fixed CodeBase to use the file name and not the module
13052         name (bug #79365).
13053
13054 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
13055
13056         * mono-debug.c, mono-debug.h: export find_method as
13057         mono_debug_find_method ().
13058
13059 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
13060
13061         * debug-helpers.c, class-internals.h: added a few functions useful
13062         when debugging under gdb.
13063
13064 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13065
13066         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
13067         characters that need special handling.
13068
13069 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
13070
13071         * mono-config.c: make the os/cpu specification more flexible,
13072         allowing lists and negation.
13073
13074 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
13075
13076         * marshal.c: COM Interop fixes. Handle case where method->klass.
13077         is interface. Handle BSTR/MonoString when null. Use CDECL as 
13078         calling convention on non-windows platforms. This is for
13079         compatibility with XPCOM and MainWin COM.
13080         
13081         Code is contributed under MIT/X11 license.
13082         
13083
13084 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
13085
13086         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
13087         correctly. Fixes #79217.
13088
13089         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
13090
13091 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
13092
13093         * mono-config.c: allow both an os and cpu attribute for dllmap
13094         and dllentry elemnets to enable a single config file to be used
13095         for multiple architectures.
13096
13097 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
13098
13099         * loader.c: MonoLoaderError was cleared too soon on load failure.
13100         Fixes bug #79424.
13101
13102 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
13103
13104         * icall.c: use the defining class vtable when accessing a
13105         static field, not a pobblibly derived class.
13106
13107 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
13108
13109         * icall.c string-icalls.c: Remove references to unicode.h.
13110
13111         * unicode.h unicode.c Makefile.am: Remove these unused source files.
13112
13113         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
13114
13115         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
13116         indicating the image where custom marshaller types should be looked up.
13117         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
13118         custom marshallers, instead of corlib. Fixes #79425.
13119
13120 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
13121
13122         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
13123
13124 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
13125
13126         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
13127         Implement Environment.ProcessorCount.
13128         
13129         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
13130         Implement Environment.ProcessorCount.
13131         
13132         * icall.c: 
13133         Add Environment.ProcessorCount icall.
13134         
13135         Patch by Jason McFall.
13136
13137 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13138
13139         * assembly.c: don't append .exe/.dll when the filename already contains
13140         one of those extensions.
13141
13142 2006-09-12  Martin Baulig  <martin@ximian.com>
13143
13144         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
13145         to array interfaces.
13146
13147 2006-09-11  Martin Baulig  <martin@ximian.com>
13148
13149         * reflection.c (mono_image_build_metadata): Create the
13150         MethodImpl's after emitting all types and methods, so we don't
13151         need another fixup pass for them.
13152
13153 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
13154
13155         * class.c (mono_class_from_name_case): Fix regression introduced by the last
13156         change.
13157
13158 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
13159
13160         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
13161         unload.
13162
13163 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
13164
13165         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
13166         args is not set. Fixes #78926.
13167
13168 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
13169
13170         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
13171
13172         * image.c (load_class_names): Move this to class.c, and rename it to 
13173         'mono_image_init_name_cache'.
13174         (load_modules): Fix a warning.
13175
13176         * class.c icall.c image.c: Initialize image->name_cache lazily.
13177
13178         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
13179         on its name using information in the AOT file.
13180
13181         * class.c (mono_class_from_name): Use the new hook function.
13182
13183 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
13184
13185         * reflection.c (mono_param_get_objects): Handle enum default parameter values
13186         correctly.
13187
13188         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
13189         Fixes #79289.
13190         
13191 2006-09-06  Martin Baulig  <martin@ximian.com>
13192
13193         * icall.c (mono_lookup_internal_call): Small fix.
13194
13195 2006-09-05  Raja R Harinath  <rharinath@novell.com>
13196
13197         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
13198         double g_free.
13199
13200 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
13201
13202         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
13203         when --debug is specified.
13204
13205 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
13206
13207         * class.c (setup_generic_array_ifaces): Fix a warning.
13208
13209 2006-09-04  Miguel de Icaza  <miguel@novell.com>
13210
13211         * Temporarily remove the patch to assemly.c that checks the
13212         assembly versions as it breaks our gacutil.
13213
13214 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
13215
13216         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
13217
13218         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
13219         a net 1.0 runtime.
13220
13221         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
13222         created using the default ctor. Fixes #79152.
13223         (mono_string_builder_to_utf16): Ditto.
13224
13225 2006-09-01  Martin Baulig  <martin@ximian.com>
13226
13227         Fix handling of the generic array interfaces.
13228
13229         * class-internals.h
13230         (MonoDefaults): Removed `generic_array_class' and added
13231         `generic_ilist' class.
13232
13233         * class.c
13234         (mono_bounded_array_class_get): Add the new generic array interfaces.
13235         (setup_generic_array_ifaces): New static method; create vtable
13236         entries for each method in the generic array interfaces.
13237
13238         * metadata.c
13239         (select_container): Allow "parent-less" generic methods.
13240
13241         * marshal.c
13242         (mono_marshal_get_generic_array_helper): New public method.
13243
13244         * icall.c
13245         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
13246         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
13247         moved the interncall into System.Array.
13248
13249 2006-09-01  Raja R Harinath  <rharinath@novell.com>
13250
13251         A few more cases of avoiding work on types with ->byref set.
13252         Has the real fix for #79238
13253         * icall.c (is_generic_parameter): New helper.
13254         (ves_icall_Type_GetGenericParameterPosition): Use it.
13255         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
13256         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
13257         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
13258         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
13259         reference types.
13260         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
13261         reference types.
13262         (ves_icall_Type_get_IsGenericInstance): Likewise.
13263         (ves_icall_Type_get_IsGenericType): Likewise.
13264
13265 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
13266
13267         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
13268         class if possible.
13269
13270         * mempool.h (mono_mempool_get_allocated): New helper function.
13271
13272         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
13273         change.
13274
13275         * mempool.c: Fix warnings and the calculation of stats.
13276
13277         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
13278
13279         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
13280
13281         * loader.c (mono_get_method_from_token): Update method_count stat.
13282
13283         * class-internals.h (MonoStats): Add some stats.
13284
13285 2006-08-31 Robert Jordan  <robertj@gmx.net>
13286
13287         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
13288         with managed variants.
13289         All code is contributed under the MIT/X11 license.
13290         
13291 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
13292
13293         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
13294         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
13295
13296         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
13297
13298         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
13299         with cycles in classes.
13300
13301         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
13302
13303         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
13304         missing a [MarshalAs] directive. Fixes #79203.
13305
13306         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
13307         klass->marshal_info. Fixes #79217.
13308
13309 2006-08-30  Martin Baulig  <martin@ximian.com>
13310
13311         Committing a patch from Joachim Ante <joe@otee.dk>:
13312         Add support for binary data symbol stores.
13313
13314         * debug-mono-symfile.c
13315         (mono_debug_open_mono_symbol_file): Renamed into
13316         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
13317         arguments.
13318
13319         * mono-debug.c
13320         (mono_debug_open_image): Added `raw_contents' and `size' args.
13321         (mono_debug_init_2_memory): New public function.
13322
13323 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
13324
13325         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
13326
13327 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13328
13329         * appdomain.c: implement support for ShadowCopyFiles.
13330
13331 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
13332
13333         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
13334         when value is NULL (and should remove CID #51).
13335
13336 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13337
13338         * image.c: moved 2 functions to ../utils.
13339
13340 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
13341
13342         * gc.c: cope with the target object of a GC handle being NULL
13343         (bug #78877).
13344
13345 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
13346
13347         * class.c: recursively check parent's explicit implementations
13348         of interface methods (fixes bug #79125).
13349
13350 2006-08-19  Miguel de Icaza  <miguel@novell.com>
13351
13352         * filewatcher.c: Avoid warnings when building, do not redefine
13353         constants that are defined.
13354
13355         Remove warnings.
13356
13357 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13358
13359         * image.c: don't fail when the link points to an absolute path.
13360
13361 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
13362
13363         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
13364         Fix CID #3.
13365
13366 2006-08-17  Miguel de Icaza  <miguel@novell.com>
13367
13368         * image.c (full_path): A new method used to obtain the actual path
13369         of an assembly even in the presence of symbolic links.  
13370
13371         This is necessary for the case where we are running a binary that
13372         has been GACed, but we are using the "published" path name
13373         ($prefix/mono/1.0/blah.exe) which happens to point to the real
13374         file in the GAC.
13375
13376         This was the source of the failure for the `xsp' command with the
13377         recent AppDomain changes, as far as the runtime was concerned,
13378         there were two different assemblies: $prefix/mono/1.0/blah.exe and
13379         $prefix/mono/gac/blah/version/blah.exe.
13380
13381         (do_mono_image_open): use full path
13382
13383 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
13384
13385         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
13386
13387 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
13388
13389         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
13390         domain_id is supplied. Fix CID #241 and corlib's unit tests.
13391
13392 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
13393
13394         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
13395         small structures. Fixes #78990.
13396
13397 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
13398
13399         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
13400
13401         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
13402
13403 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13404
13405         * appdomain.c:
13406         * marshal.c: don't load all the assemblies from a domain into newly
13407         created ones. The new domains might have different rules and load
13408         assemblies from different locations. Fixes bug #76757.
13409
13410         Patch by Lluis. Conflicts resolved by Brian Crowell.
13411
13412 2006-08-16  Alp Toker  <alp@atoker.com>
13413
13414         * socket-io.c: First half of the fix for #79084.
13415         Set sa_size to the length of the content, not that of the struct.
13416         Don't add NULL suffix to the content, this should be done in
13417         managed code if needed.
13418
13419 2006-08-14  Raja R Harinath  <rharinath@novell.com>
13420
13421         Fix part of #79012
13422         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
13423         mono_metadata_parse_type returns NULL.
13424
13425 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
13426
13427         * normalization-tables.h : new file for string normalization data.
13428         * locales.c, locales.h, icall.c :
13429           added load_normalization_resource() for string normalization,
13430           and icall as well.
13431         * Makefile.am : added normalization-tables.h to the sources.
13432
13433 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
13434
13435         * marshal.c: Add more helper functions to reduce code duplication and use them
13436         everywhere.
13437
13438 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
13439
13440         * marshal.c: Fix non-x86 stdcall warnings.
13441         
13442         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
13443         them everywhere.
13444
13445 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
13446
13447         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
13448         type check on multi-dimensional arrays. Fixes #79000.
13449
13450 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
13451
13452         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
13453         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
13454         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
13455         * class-internals.h: add is_com_object to class structure.
13456         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
13457         null checks to COM object marshalling. Fix .ctor call on RCW.
13458         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
13459         
13460         All code is contributed under the MIT/X11 license.
13461
13462 2006-08-09  Dick Porter  <dick@ximian.com>
13463
13464         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
13465         racing mono_monitor_allocator_lock() somewhere, so don't delete
13466         the critical section for now.  Found by running and exiting
13467         monodevelop.
13468
13469 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
13470
13471         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
13472         (ves_icall_System_ComObject_FindInterface): Ditto.
13473         (ves_icall_System_ComObject_CacheInterface): Ditto.
13474
13475         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
13476         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
13477
13478 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13479
13480         * threadpool.c: treat pipes from process asynchronous reads as sockets
13481         when reading from them, so we get select/poll or epoll to wait for
13482         data.
13483
13484 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
13485
13486         * loader.c: Fix a typo (CID #233) in the null check.
13487
13488 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
13489
13490         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
13491         Hopefully fixes #78949.
13492         
13493         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
13494         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
13495         bytes. Fixes #78972.
13496
13497 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13498
13499         * filewatcher.c: we need to set errno here.
13500
13501 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13502
13503         * filewatcher.c: let Win32Exception get the error value.
13504
13505 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13506
13507         * filewatcher.c: translate errno into win32 errors for Win32Exception
13508         to know what happened.
13509
13510 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
13511
13512         * threadpool.c: Fix more warnings.
13513
13514         * assembly.c (search_loaded): Fix warnings.
13515
13516         * threadpool.c (mono_thread_pool_finish): Fix warnings.
13517         (mono_async_invoke): Ditto.
13518
13519 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
13520
13521         * object.c (mono_remote_class_vtable): Need to create proxy vtable
13522         entries for __ComObject type in addition to ComImport types.
13523         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
13524         about hash table.
13525         
13526         All code is contributed under the MIT/X11 license.
13527
13528 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
13529
13530         * image.c: avoid tentative loading of modulerefs that contain
13531         no metadata (P/Invoke library names).
13532
13533 2006-07-28  Dick Porter  <dick@ximian.com>
13534
13535         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
13536         mono_loader_lock() somewhere, so don't delete the critical section
13537         for now.  Found by running and exiting monodevelop.
13538
13539 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13540
13541         * filewatcher.c: define the inotify syscalls when we're building on
13542         linux and have sys/syscall.h. The build system might not have support
13543         for inotify but the target system might have it.
13544
13545 2006-07-26  Miguel de Icaza  <miguel@novell.com>
13546
13547         * domain.c: Documentation updates.
13548
13549         * loader.c (mono_free_method): Do not release the method
13550         information if we are being profiled, as profilers will use this
13551         information at shut down to present some data to the user.
13552
13553         This is needed so that the profiler does not crash, as the
13554         profiler tends to keep MonoMethods around, and they might become
13555         invalid if we free these.
13556
13557         (mono_get_method_constrained): Return the original CIL stream
13558         method as well, so verification can be performed against it.
13559
13560 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13561
13562         * filewatcher.[ch]: support for inotify file system watcher.
13563         * icall.c: add new internal calls for the inotify file system watcher.
13564
13565 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13566
13567         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
13568         #78888.
13569
13570 2006-07-20  Dick Porter  <dick@ximian.com>
13571
13572         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
13573         warning.
13574
13575 2006-07-20  Dick Porter  <dick@ximian.com>
13576
13577         * threads.c (start_wrapper): Do the thread cleanup while we still
13578         hold a reference to its object.  Fixes bug 78123.
13579
13580 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
13581
13582         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
13583         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
13584           "managed-to-managed".
13585         * icall.c: Redirect string constructors that take sbyte* to
13586           ves_icall_System_String_ctor_RedirectToCreateString.
13587         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
13588           to CreateString () methods with matching signature.
13589         * reflection.c: Use original security informations for
13590           MONO_WRAPPER_MANAGED_TO_MANAGED.
13591         * security-manager.c: Use original security informations for
13592           MONO_WRAPPER_MANAGED_TO_MANAGED.
13593         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
13594           that is a placeholder and only its address should be used.
13595         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
13596           that is a placeholder and only its address should be used.
13597
13598 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
13599
13600         Begin implementing COM Interop.
13601         * appdomain.c: Increment corlib version.
13602         * class.c: Set ComImport classes' parent to __ComObject.
13603         * loader.c: Mark cominterop methods as such.
13604         * domain.c: Add __ComObject class to MonoDefaults structure.
13605         * image.c: Add 2 hashtables to the image for COM Interop related methods
13606         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
13607         using the mempool allocator
13608         
13609         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
13610         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
13611         declaration for mono_metadata_type_dup_mp.
13612         
13613         * debug-helpers.c: Added strings for two additional wrapper types
13614         * object.c: Create proxy objects for ComImport classes
13615         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
13616         and added __ComObject class to MonoDefaults structure.
13617         
13618         * object-internals.h: Finish MonoRealProxy definition, and add definition of
13619         MonoComInteropProxy and MonoComObject.
13620         
13621         * marshal.c: Added support for COM Interop
13622         (signature_cominterop): Converts managed signature to corresponding
13623         unmanaged COM signature.
13624         (cominterop_get_function_pointer): gets unmanaged function pointer via
13625         COM object vtable
13626         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
13627         (cominterop_get_method_interface): returns interface type that method is defined on
13628         (mono_mb_emit_cominterop_call): emits native call to function pointer
13629         gotten from vtable
13630         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
13631         that matches signature of unmanaged function.
13632         (cominterop_get_native_wrapper): wrapper around adjusted method call.
13633         (cominterop_get_invoke): forwards call from proxy to __ComObject
13634         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
13635         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
13636         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
13637         
13638         * marshal.h: Added Marshal icall declarations.
13639         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
13640         so we can access them in finalizer
13641         
13642 2006-07-14  Dick Porter  <dick@ximian.com>
13643
13644         * object.c (mono_type_initialization_cleanup): Fix a race
13645         condition by temporarily commenting out the critical section
13646         deletion.
13647
13648 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
13649
13650         * reflection.c (create_custom_attr): Fix some warnings.
13651         (create_custom_attr_data): Ditto.
13652         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
13653         types. Fixes #78855.
13654
13655 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
13656
13657         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
13658
13659         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
13660
13661 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
13662
13663         * reflection.c (resolve_object): Add support for DynamicMethod.
13664
13665         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
13666         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
13667
13668 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
13669
13670         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
13671         don't leak GPtrArray's pdata has we have no use (nor free) for it.
13672
13673 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
13674
13675         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
13676         Fixes #77888.
13677
13678 2006-06-30  Raja R Harinath  <rharinath@novell.com>
13679
13680         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
13681         slightly: remove a shadow local variable.
13682
13683 2006-06-29  Raja R Harinath  <rharinath@novell.com>
13684
13685         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
13686         definition that introduces the virtual function slot.
13687         Also fix Coverity #105.
13688
13689 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
13690
13691         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
13692         for dynamic assemblies. Fixes #78724.
13693
13694 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
13695
13696         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
13697         Fixes #78722.
13698
13699 2006-06-21  Martin Baulig  <martin@ximian.com>
13700
13701         * reflection.c
13702         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
13703         fixes #76484.
13704
13705 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
13706
13707         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
13708
13709 2006-06-20  Raja R Harinath  <rharinath@novell.com>
13710
13711         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
13712         nor TYPEREFs.
13713         * class.c (mono_class_create_from_typespec): Add 'context' argument.
13714         Inflate result if necessary.
13715         (mono_class_get_full): Remove old version.  Rename from
13716         'mono_class_get' and add 'context' argument.  Pass it to
13717         ..._create_from_typespec.
13718         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
13719         (mono_ldtoken): Revert change below.
13720
13721 2006-06-20  Martin Baulig  <martin@ximian.com>
13722
13723         * class.c (mono_ldtoken): Don't pass the generic context to
13724         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
13725
13726 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
13727
13728         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
13729         and later freeing it. Fixes #78638.
13730
13731 2006-06-15  Miguel de Icaza  <miguel@novell.com>
13732
13733         * icall.c (mono_class_get_throw): Revert over-zealous error
13734         throwing, the caller for mono_class_get_throw will cope with
13735         errors when classes are not properly initialized already.
13736
13737         The code still copes with loader exceptions though.
13738
13739         Fixes the regression in reftype1 and reftype3 from the CAS tests.
13740         
13741 2006-06-14  Miguel de Icaza  <miguel@novell.com>
13742
13743         Fixes the `make run1' version of RuntimeAbort (to be commited,
13744         source is in Bugzilla).
13745         
13746         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
13747         FALSE on class loading failure instead of returning true.
13748
13749         * class.c (mono_class_create_from_typedef): It is possible for
13750         mono_metadata_interfaces_from_typedef_full to fail if a class is
13751         not found, cope with this.
13752         
13753
13754 2006-06-14  Dick Porter  <dick@ximian.com>
13755
13756         * socket-io.c: 
13757         * process.c: Fix a bunch of signed/unsigned warnings from gcc
13758         4.1.1
13759
13760 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
13761
13762         * culture-info-table.h : oops, forgot to make it nsync with r61548.
13763
13764 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
13765
13766         * icall.c: Another fix for building mono in Visual Studio.
13767
13768 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
13769
13770         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
13771         
13772 2006-06-09  Martin Baulig  <martin@ximian.com>
13773
13774         * debug-mono-symfile.c: Put this back and really fix it this
13775         time. Sorry for all the trouble.
13776
13777 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
13778
13779         * icall.c (mono_class_get_throw): Fix a warning.
13780         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
13781         ReflectionTypeLoadException if needed. Fixes #78606.
13782
13783         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
13784         (mono_class_init): Ditto.
13785
13786         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
13787         ref_only exceptions.
13788         (mono_loader_clear_error): Make this work even if there is no error.
13789
13790 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
13791
13792         * object-internals.h marshal.c marshal.h icall.c: Implement method 
13793         Marshal.GetComSlotForMethodInfo using internal call.
13794
13795 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
13796
13797         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
13798         a function for signalling it.
13799
13800         * class.c (mono_class_from_typeref): Use the new kind of loader error when
13801         a referenced assembly is not found.
13802
13803         * loader.c (mono_loader_error_prepare_exception): Add support for 
13804         LOADER_ERROR_ASSEMBLY. Fix formatting.
13805
13806 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
13807
13808         * domain.c appdomain.c class-internals.h marshal.c: Add support 
13809         for VARIANT marshalling on windows and increment corlib version
13810         since Variant struct was added.
13811
13812 2006-06-03  Miguel de Icaza  <miguel@novell.com>
13813
13814         * debug-mono-symfile.c: Revert Martin's previous patch which broke
13815         stack trace line information:
13816
13817         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
13818         (Martin) when looking up B which is between A and C, return A not C.
13819
13820         Bug is #78573.
13821
13822         Thanks to Alexander Olk for tracking this down.
13823
13824 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
13825
13826         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
13827         
13828         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
13829         avoid clobbering its value.
13830         (mono_string_to_lpstr): Fix a warning on windows.
13831
13832 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
13833
13834         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
13835
13836         * reflection.c loader.c: Removed references to 'dummy' flag.
13837
13838         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
13839
13840         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
13841         it gets GC tracking.
13842
13843         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
13844         GC tracking.
13845         
13846         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
13847
13848         * marshal.c threadpool.c: Update callers of mono_async_result_new.
13849
13850         * appdomain.c: Bump corlib version.
13851
13852 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
13853
13854         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
13855         CEE_STIND_REF when working with object references.
13856
13857 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
13858
13859         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
13860         Fixes #78539.
13861
13862 2006-05-30  Miguel de Icaza  <miguel@novell.com>
13863
13864         * loader.c (method_from_memberref): Fix argument value for
13865         mono_loader_set_error_method_load (I was passing the MonoClass
13866         instead of the class name char *).
13867
13868 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
13869
13870         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
13871         CEE_STIND_REF when working with object references.
13872
13873 2006-05-30  Martin Baulig  <martin@ximian.com>
13874
13875         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
13876         mono_method_full_name() change and replace the ':' with a '.'
13877         here.
13878
13879 2006-05-30  Martin Baulig  <martin@ximian.com>
13880
13881         * debug-mono-symfile.c
13882         (mono_debug_symfile_lookup_location): Fix the algorithm:
13883         when looking up B which is between A and C, return A not C.
13884
13885 2006-05-29  Martin Baulig  <martin@ximian.com>
13886
13887         * mono-debug.h
13888         (MonoDebugMethodInfo): Make the typedef public.
13889         (MonoDebugSourceLocation): New public struct.
13890
13891         * mono-debug.c
13892         (mono_debug_source_location_from_address): Removed.
13893         (mono_debug_source_location_from_il_offset): Removed.
13894         (mono_debug_il_offset_from_address): Removed.
13895         (mono_debug_address_from_il_offset): Removed.
13896         (mono_debug_lookup_method): New public function.
13897         (mono_debug_lookup_source_location): New public function; replaces
13898         the old mono_debug_source_location_from_*() functions; see the
13899         inline documentation.
13900         (mono_debug_free_source_location): New public function.
13901         (mono_debug_print_stack_frame): New public function; see the
13902         inline documentation.
13903
13904         * debug-mono-symfile.c
13905         (mono_debug_find_source_location): Renamed into
13906         mono_debug_symfile_lookup_location(); only take a
13907         `MonoDebugMethodInfo *' and an `offset' argument; added inline
13908         documentation.
13909         (mono_debug_find_method): Renamed into
13910         mono_debug_symfile_lookup_method().
13911
13912 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
13913
13914         * assembly.c (mono_assembly_open_full): Dont overwrite the status
13915         returned by mono_image_open_full ().
13916
13917         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
13918         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
13919         #78517.
13920
13921         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
13922         #78518.
13923
13924 2006-05-27  Miguel de Icaza  <miguel@novell.com>
13925
13926         * class.c (mono_class_from_typeref): handle missing images
13927         earlier, deals with bug #78418.   Refactor code; 
13928
13929         Fix a warning introduced in my previous commit (some stale code
13930         from before I revisited my patch).
13931
13932         * class.c (mono_class_create_from_typedef): On failure, remove the
13933         class from the MonoImage->class_cache as the class is not
13934         initialized;   Fixes the leak pointed out by Paolo.
13935
13936 2006-05-25  Dick Porter  <dick@ximian.com>
13937
13938         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
13939         DeleteCriticalSections until I figure out which one may still be
13940         sometimes locked when mono_thread_cleanup is called.
13941
13942 2006-05-24  Dick Porter  <dick@ximian.com>
13943
13944         * threads.c (mono_thread_cleanup): Move the threading cleanup out
13945         of mono_thread_manage and back into its own function, so it can be
13946         called after the finalizer thread has finished.
13947
13948         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
13949
13950 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
13951
13952         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
13953         Fixes #78495.
13954
13955         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
13956         with non-blittable elements.
13957         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
13958
13959 2006-05-24  Martin Baulig  <martin@ximian.com>
13960
13961         * mono-debug-debugger.h (MonoDebuggerEvent): Added
13962         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
13963
13964         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
13965         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
13966         `mono_debugger_event_handler' to NULL.
13967
13968 2006-05-24  Martin Baulig  <martin@ximian.com>
13969
13970         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
13971
13972 2006-05-24  Martin Baulig  <martin@ximian.com>
13973
13974         * mono-debug-debugger.h
13975         (mono_debugger_create_notification_function): Added
13976         `MonoCodeManager *' argument.
13977
13978 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
13979
13980         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
13981
13982 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
13983
13984         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
13985         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
13986         implementation.
13987
13988 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
13989
13990         * icall.c: precise GC support: objects can't be stored in unmanaged
13991         memory anymore, even if they are kept alive by other references: since
13992         they can move the GC needs to be able to always find them.
13993
13994 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
13995
13996         * object.c: precise GC support for static fields. Support
13997         for moving GCs: write barriers and pinned allocation for interned
13998         strings.
13999
14000 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
14001
14002         * domain.c, domain-internals.h: precise GC support for the MonoDomain
14003         structure.
14004
14005 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
14006
14007         * class.c, gc.c: sgen and precise GC updates.
14008
14009 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
14010
14011         * marshal.h, marshal.c: added write barrier wrapper and precise type
14012         fixes.
14013
14014 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
14015
14016         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
14017         support.
14018
14019 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
14020
14021         * reflection.c: precise and sgen GC updates.
14022
14023 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
14024
14025         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
14026
14027 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
14028
14029         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
14030
14031 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
14032
14033         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
14034         MONO_TYPE_OBJECT. Fixes #78462.
14035
14036 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
14037
14038         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
14039         and blittable types.
14040
14041 2006-05-17  Miguel de Icaza  <miguel@novell.com>
14042
14043         * class.c (mono_class_get_exception_for_failure): Implement parts
14044         of a TODO: if the loader error is set (instead of the class
14045         error), we return a Loader exception that can be properly thrown
14046         elsewhere.
14047
14048         This was exposed by some Winforms 2.0 code that I tried to run
14049         (Atsushi pointed me to it).
14050
14051 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
14052
14053         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
14054         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
14055         
14056         * marshal.c (emit_marshal_vtype): Add limited support for 
14057         UnmanagedType.LPStruct. Fixes #78427.
14058
14059         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
14060         Applied a patch from kangaroo to fix #77523.
14061
14062 2006-05-17  Martin Baulig  <martin@ximian.com>
14063
14064         * threads.c
14065         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
14066         (debugger_thread_created): Removed.
14067         (debugger_thread_exited): Removed.
14068
14069 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
14070
14071         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
14072
14073         * object-internals.h (MonoReflectionResource): Sync with managed version.
14074
14075 2006-05-12  Wade Berrier <wberrier@novell.com>
14076
14077         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
14078
14079 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
14080
14081         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
14082         functions try to allocate from the image mempool.
14083
14084 2006-05-12  Dick Porter  <dick@ximian.com>
14085
14086         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
14087
14088 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
14089
14090         * object.c: The FieldGetter and FieldSetter methods require the full
14091         name of the class, not only the name. Fixes bug #78277.
14092
14093 2006-05-11  Miguel de Icaza  <miguel@novell.com>
14094
14095         * loader.c (method_from_memberref): Do not pass the NULL klass to
14096         mono_loader_set_error_() methods.  Pass the non-NULL value
14097         (class). 
14098
14099 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
14100
14101         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
14102         (mono_assembly_close): Null out assembly->image->references after freeing it.
14103
14104         * image.c (mono_image_close): Free image->references.
14105         
14106         * reflection.c (mono_image_basic_init): Fix a small memory leak.
14107
14108 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
14109
14110         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
14111         before checking if it's NULL (g_assert).
14112
14113 2006-05-10  Martin Baulig  <martin@ximian.com>
14114
14115         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
14116         I thought I already killed that two months ago, but now it somehow reappeared.
14117
14118 2006-05-10  Martin Baulig  <martin@ximian.com>
14119
14120         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
14121
14122 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
14123
14124         * reflection.c: Allocate memory for dynamically created methods in the image
14125         mempools.
14126
14127 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
14128
14129         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
14130         don't use the ad pointer before checking if it's NULL (g_assert).
14131
14132 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
14133
14134         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
14135         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
14136
14137         * marshal.c: Allocate all signatures from mempools.
14138
14139         * marshal.c: Allocate some more signatures from mempools.
14140
14141 2006-05-09  Miguel de Icaza  <miguel@novell.com>
14142
14143         * object.c (mono_load_remote_field): The code used to provide a
14144         temporary variable for returning results if the user did not
14145         provide a result pointer.  But our temporary variable was allocted
14146         on the satck.
14147
14148         Fix calling code to always pass a result area.   Coverity ID 103.
14149
14150 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
14151
14152         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
14153         value, not the old. Fixes #78312.
14154         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
14155
14156         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
14157         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
14158         per-image cache.
14159
14160         * assembly.c (mono_assembly_close): Free image->references.
14161
14162         * assembly.c (mono_assembly_names_equal): Fix a warning.
14163         (mono_assemblies_cleanup): Cleanup more global data.
14164
14165         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
14166
14167         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
14168         ptr_cache and image->modules.
14169
14170         * image.c (mono_image_init): Allocate array_cache lazily.
14171         
14172 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14173
14174         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
14175         behavior was changed recently and has bad side effects.
14176
14177 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
14178
14179         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
14180         
14181         * assembly.c (mono_assembly_close): Remove a debug printf.
14182
14183         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
14184
14185         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
14186         to also allow for temporary references between mono_image_open ()/close ().
14187
14188         * domain.c (get_runtimes_from_exe): Add a FIXME.        
14189
14190 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
14191
14192         * marshal.c: Fix support for dynamic methods.
14193
14194         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
14195
14196         * marshal.c (mono_marshal_cleanup): New cleanup function.
14197
14198         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
14199         image mempools.
14200
14201         * class.c (mono_class_init): Fix leaking class->nested_classes.
14202
14203         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
14204
14205         * image.c (mono_image_init): Initialize the new cashes.
14206
14207         * image.c (mono_image_close): Destroy the new cashes.
14208
14209         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
14210
14211         * mempool.c (mono_mempool_strdup): New helper function.
14212
14213         * class-internals.h: Add prototype for mono_loader_unlock ().
14214
14215         * domain.c (mono_jit_info_table_find): Fix a warning.
14216         (mono_debugger_check_runtime_version): Ditto.
14217
14218         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
14219         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
14220         functions to these modules.
14221
14222         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
14223         metadata modules.
14224         
14225         * marshal.c (mono_free_bstr): Fix a warning.
14226
14227         * assembly.c (mono_assembly_open_full): Fix another small leak.
14228
14229         * object.c: Fix some unload leaks in the remoting code.
14230
14231         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
14232         function.
14233
14234         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
14235
14236         * reflection.c: Fix some unload leaks in dynamic assemblies.
14237
14238 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
14239
14240         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
14241         * marshal.h: Add BSTR support on Win32
14242         * icall.c: Add BSTR icalls
14243         * metadata.h: Add BSTR enums
14244
14245 2006-04-28  Miguel de Icaza  <miguel@novell.com>
14246
14247         Work to catch the crash from #76795 and turn it into an
14248         exception.   As I stubbed out pieces of the VisualBasic support,
14249         I found a number of places where the code was failing and I added
14250         checks to those places. 
14251         
14252         * metadata.c (do_mono_metadata_parse_generic_class): Make this
14253         function return a status code.  If we fail to parse the signature
14254         from mono_metadata_parse_generic_inst, return FALSE.
14255
14256         * loader.c (mono_get_method_from_token): If we fail to load the
14257         method (mono_class_get) return NULL.   
14258
14259         * (method_from_memberref): Return NULL if we are unable to parse
14260         the method signature
14261
14262         (mono_loader_error_prepare_exception): Since we now use the
14263         loader_error flag internally to stop processing, and obtaining
14264         exceptions that might be thrown will walk this code path the
14265         proper way of going from a MonoLoaderError into a
14266         MonoException was convoluted.   This new routine encapsulates the
14267         process of turning the error into an exception and *clearing* the
14268         error afterwards.
14269         
14270 2006-04-27  Miguel de Icaza  <miguel@novell.com>
14271
14272         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
14273         with missing assemblies), and to cope with:
14274
14275                 * Missing fieldref from a non-existing assembly.
14276                 * Missing methodref from a non-existing assembly.
14277
14278         The first batch of work to address *some* of the issues from 76661.
14279         
14280         * object.c (mono_class_create_runtime_vtable): If we fail to
14281         initialize the class raise the exception here. 
14282
14283         * metadata.c (mono_class_get_overrides_full): If any methods fail
14284         to load return the failure to the caller.
14285
14286         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
14287         flagging assemblies that failed to load.   
14288
14289         Do not crash if we are unable to load the assembly.
14290
14291         (mono_assembly_close): Do nothing with REFERENCE_MISSING
14292         assemblies. 
14293
14294         * loader.c (mono_loader_set_error_type_load): Change the
14295         convention to always pass unallocated strings, so we make our own
14296         copies (I know our own code had duplicated strings before, but
14297         this keeps the normal conventions).
14298         (method_from_memberref): Call mono_loader_set_error_method_load
14299         for all possible failures of loading the class. 
14300         Remove assert, turn into a loader error.
14301
14302         (mono_loader_error_to_exception): Move this routine from mini
14303         (mini_loader_error_to_exception) there was no need to have that in
14304         mini. 
14305
14306         * class.c (mono_class_from_typeref): If we were not able to load
14307         the assembly with mono_assembly_load_reference, call the
14308         mono_loader_set_error_type_load to register the problem.
14309
14310         (mono_class_setup_fields): If we fail to load the type from
14311         mono_metadata_parse_type_full, call mono_class_set_failure and
14312         break from the loop.
14313
14314         If class->exception_type is set, we do not layout the fields as
14315         that might crash the runtime, and instead return (from breaking
14316         from the previous loop).
14317
14318         (mono_class_setup_vtable): This now returns a boolean indicating
14319         whether the table was properly setup.   The decision is driven by
14320         mono_class_get_overrides_full which might run into non-existing
14321         methods. 
14322         
14323         (mono_class_init): Returns TRUE on success or FALSE if there was a
14324         problem in loading the type (incorrect assemblies, missing
14325         assemblies, methods, etc).
14326
14327         When we call mono_class_setup_fields we also check for a potential
14328         error inside this call (either a class exception or a general
14329         loader exception).
14330
14331         (mono_class_create_from_typedef): If the parent fails to load
14332         (calling mono_class_get_full) return NULL.
14333         
14334         ** Important **
14335
14336         calls to mono_metadata_parse_type_full should be checked
14337         everywhere and set the mono_class_set_failure
14338         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
14339
14340         The current patch checks the places where my manually constructed
14341         tests show the errors are showing up, but we should do it
14342         everywhere. 
14343
14344         ** Important2 **
14345
14346         mono_class_init return values should be tested everywhere, like
14347         the previous case this is something that we should audit
14348         everywhere and not only on the cases exposed by the tests I
14349         created. 
14350
14351 2006-04-26  Miguel de Icaza  <miguel@novell.com>
14352
14353         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
14354         boolean parameter and instead pass the information on `options'
14355         parameter (FileOptions).
14356
14357         * icall.c: Register the new signature for MonoIO.Open.
14358
14359         * debug-helpers.c (dis_one): Trying to understand how coverity
14360         works.  Fix Run 5, item 78.
14361
14362 2006-04-26  Dick Porter  <dick@ximian.com>
14363
14364         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
14365         dereference.
14366
14367 2006-04-25  Martin Baulig  <martin@ximian.com>
14368
14369         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
14370
14371         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
14372         debugger_thread_created().
14373         (debugger_gc_push_all_stacks): Don't handle the main thread in any
14374         special way.
14375         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
14376         (mono_debugger_finalize_threads): New function; undo the effects
14377         of mono_debugger_init_threads().
14378         (mono_debugger_create_all_threads): Removed.
14379
14380 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
14381
14382         * image.c (mono_image_close): Tidy up trace messages.
14383
14384         * assembly.c (mono_assembly_close): Ditto.
14385
14386         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
14387         no longer references an already freed assembly. Fixes #78168.
14388
14389 2006-04-21  Dick Porter  <dick@ximian.com>
14390
14391         * threads.c (mono_thread_detach): Fix reference counting when
14392         detaching threads.
14393
14394 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
14395
14396         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
14397         #78155.
14398
14399 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
14400
14401         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
14402         (mono_type_to_stind): Ditto.
14403
14404         * marshal.c: Use the new helper functions to simplify code.
14405
14406         * image.c (mono_image_close): Add some code for help debug assembly unloading
14407         problems.
14408
14409         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
14410         image mempool.
14411
14412         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
14413         assembly was already loaded in another appdomain. Fixes #78083.
14414
14415 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
14416
14417         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
14418         referenced assemblies.
14419         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
14420
14421         * domain.c (mono_domain_free): Add a trace message.
14422
14423         * appdomain.c (add_assemblies_to_domain): Ditto.        
14424
14425         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
14426         field.  
14427
14428 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
14429
14430         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
14431
14432 2006-04-12  Martin Baulig  <martin@ximian.com>
14433
14434         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
14435         `USE_INCLUDED_LIBGC'.   
14436
14437 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
14438
14439         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
14440         the patch contains ../ and a small directory name later. Hopefully fixes
14441         #78035.
14442
14443 2006-04-10  Martin Baulig  <martin@ximian.com>
14444
14445         Clean up the debugger's thread-handling code.
14446
14447         The debugger's thread-handling code has been moved from
14448         ../mini/debug-debugger.c to threads.c.  We now iterate directly
14449         over the `threads' hash, keep track of exiting threads and also
14450         use proper locking.
14451
14452         We can now debug XSP and XSP based applications with the debugger.
14453
14454         * object-internals.h (MonoThread): Added `gpointer end_stack'.
14455
14456         * threads.h
14457         (MonoThreadCallbacks): Removed; this was only used by the debugger.
14458         (mono_install_thread_callbacks): Likewise.      
14459
14460         * threads.c (mono_thread_callbacks): Removed.
14461         (debugger_thread_created, debugger_thread_exited): New static functions.
14462         (start_wrapper): Call debugger_thread_created().
14463         (thread_cleanup): Call debugger_thread_exited().
14464         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
14465         (mono_debugger_init_threads): New public function.
14466         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
14467         iterate directly over the `threads' hash and also use proper locking.
14468
14469         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
14470
14471         * mono-debug-debugger.h
14472         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
14473
14474 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
14475
14476         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
14477         argument type=array. Fixes #78057.
14478
14479 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
14480
14481         * culture-info-table.h : regenerated. Fixed bug #69652.
14482
14483 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
14484
14485         * loader.c metadata.c: Reapply a variant r59116.
14486         
14487         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
14488
14489         * class.c (mono_class_setup_interface_offsets): New internal function.
14490
14491         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
14492         interfaces too. Fixes #77398.
14493
14494         * reflection.c (encode_cattr_value): Add support for 
14495         parameter type=object, argument type=array.
14496         (load_cattr_value): Ditto. Fixes #77916.
14497
14498         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
14499         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
14500
14501         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
14502         a byval char array and CharSet is Ansi.
14503
14504         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
14505
14506 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
14507
14508         * metadata.c: Add some locking comments.
14509         
14510         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
14511         mempool.
14512         (mono_metadata_free_method_signature): Don't free the signature itself.
14513
14514         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
14515
14516         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
14517         reference the same MonoImage.
14518         (mono_assembly_load_from_full): Add an assert.
14519
14520 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
14521
14522         * image.c (mono_image_close): Don't put the image we are about to free into the
14523         loaded_images_guid_hash.
14524
14525         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
14526         to reduce code duplication.
14527
14528         * marshal.c: Register the native functions called by this module as icalls, to
14529         somewhat centralize the creation of MonoMethodSignature's.
14530
14531         * loader.c (mono_method_signature): Add a cache for method signatures.
14532
14533         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
14534         the parameter attributes of a method.
14535         (mono_metadata_parse_method_signature_full): Refactored the computation of
14536         parameter attributes into a separate function. Also avoid one allocation in
14537         most cases.
14538
14539         * assembly.c (mono_assembly_close): Ditto.
14540
14541         * image.c (mono_image_close): Log trace messages with INFO level.
14542
14543         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
14544
14545         * image.c reflection.c: Correct reference counting of image modules.
14546         
14547         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
14548         of this function from the image mempool.
14549         
14550         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
14551         to allow more cached types to be used.
14552
14553         * mono-debug.c (mono_debug_add_method): Appled patch from
14554         David S. Miller  <davem@sunset.davemloft.net>: Access 
14555         minfo->lexical_blocks[] entry elements using read32().
14556
14557 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
14558
14559         * loader.c (mono_free_method): No longer free the method header for non-dynamic
14560         methods as it is allocated from the mempool.
14561
14562         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
14563         image mempool.
14564
14565         * metadata-internals.h: Add comments describing the reference counting scheme
14566         used for MonoImage and MonoAssembly.
14567
14568         * image.c assembly.c reflection.c: Rework reference counting of images and 
14569         assemblies so they are freed when the runtime is shut down. Free some 
14570         additional memory structures when an image is unloaded.
14571         
14572 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
14573
14574         * class.c loader.c reflection.c: Allocate more data structures in
14575         the image mempool.
14576
14577 2006-03-31  Miguel de Icaza  <miguel@novell.com>
14578
14579         * icall.c
14580         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
14581         build on pre glib 2.4 systems.
14582
14583 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
14584
14585         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
14586
14587         * icall.c: Fix some warnings.
14588
14589 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
14590
14591         * culture-info-table.h : regenerated.
14592
14593 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
14594
14595         * threads.c, object-internals.h, verify.c: changed the culture caching
14596         code to use a normal MonoArray for storage so the GC can keep track of
14597         them easily. Fixed bits of the cache logic, too and simplified the
14598         code.
14599
14600 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
14601
14602         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
14603         thread for non-Boehm GCs.
14604
14605 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
14606
14607         * domain.c, object.c, domain-internals.h: reduce the amount of memory
14608         needed to keep track of the data for static fields.
14609
14610 2006-03-29  Raja R Harinath  <rharinath@novell.com>
14611
14612         Fix #75172
14613         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
14614         for interface classes.  Use 'num_methods' instead.
14615         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
14616         before using '->vtable_size' field.
14617
14618 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
14619
14620         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
14621         doesn't contain managed pointers, so use a normal hashtable.
14622
14623 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
14624
14625         * reflection.c, class-internals.h, domain.c: fixed handling of types
14626         used as values for objects in custom attributes (bug #77915):
14627
14628 2006-03-24  Martin Baulig  <martin@ximian.com>
14629
14630         * class.c (mono_class_setup_fields): Added support for generic
14631         instances; fixes #77580.
14632
14633 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14634
14635         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
14636
14637 2006-03-24  Dick Porter  <dick@ximian.com>
14638
14639         * file-io.c (get_file_attributes): More stat macro breakage.
14640         Fixes bug 77759.
14641
14642 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
14643
14644         * profiler.c: added the file=filename option in the default profiler
14645         to output the profile data to filename.
14646
14647 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14648
14649         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
14650         bug #77877.
14651
14652 2006-03-22  Martin Baulig  <martin@ximian.com>
14653
14654         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
14655         allocated `MonoClassField *' in `fb->handle'.
14656
14657 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
14658
14659         * class.c, image.c, metadata-internals.h: implemented new mechanism to
14660         allocate interface ID to save memory and allow better ID reuse on
14661         appdomain unload. setup_generic_vtable () removal from Martin.
14662
14663 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
14664
14665         * object.h, appdomain.c, domain.c, exception.c, icall.c,
14666         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
14667         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
14668         write barriers for reference stores with managed objects accessed with
14669         C structures in the runtime and in embedding programs.
14670
14671 2006-03-20  Raja R Harinath  <rharinath@novell.com>
14672
14673         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
14674         'interface_id' and 'max_interface_id' fields of MonoClasses
14675         representing open generic types.
14676
14677 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
14678
14679         * object.h, object.c, icall.c: added functions to deal with
14680         storing valuetypes that contain references in managed objects.
14681         * reflection.c, string-icalls.c, threads.c, marshal.c: small
14682         fixes and comments around uses of mono_array_addr ().
14683
14684 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
14685
14686         * object.h, icall.c, monitor.c: object.GetHashCode ()
14687         implementation that supports the moving garbage collector.
14688
14689 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
14690
14691         * icall.c, threads-types.h, threads.c: implemented finalizer for
14692         LocalDataStoreSlot.
14693
14694 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
14695
14696         * metadata.c (mono_type_size): Add a fixme.
14697         (mono_type_stack_size): Ditto.
14698
14699         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
14700         'type_forwarders' field.
14701
14702         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
14703         attribute from net 2.0.
14704
14705         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
14706         from class.c.
14707
14708         * class.c (mono_class_setup_fields): Fix a warning.
14709         
14710         * class.c (mono_class_from_name): Add support for assemblyref entries
14711         in the EXPORTEDTYPE table.
14712
14713         * reflection.c: Add support for handling type forwarders under net 2.0.
14714
14715         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
14716         
14717 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
14718
14719         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
14720         overwriting entries in ModuleBuild->types, also clean up the code
14721         a little. Fixes #77774.
14722
14723 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
14724
14725         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
14726         load friend assembly info when present.
14727
14728 2006-03-14  Raja R Harinath  <rharinath@novell.com>
14729
14730         Fix crasher on gtest-158.cs.
14731         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
14732         the return value if the MonoClass we want is yet in an
14733         inconsistent state.
14734         * class.c (mono_class_create_from_typedef): Add an comment
14735         explaining an order dependency between mono_class_setup_parent and
14736         mono_class_setup_mono_type.
14737
14738 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
14739
14740         * class.c: documentation updates and events bug fix.
14741
14742 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
14743
14744         * class.c: some cleanup, locking fixes.
14745
14746 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
14747
14748         * class.c: fix the generics code to setup nested
14749         type info to the instantiated type (bug #77770).
14750
14751 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
14752
14753         * marshal.c: fixed a few type correctness issues.
14754
14755 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
14756
14757         * loader.c: the Set/Get/Addrtess array methods should be public.
14758
14759 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
14760
14761         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
14762         
14763         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
14764         info->wrapper.
14765
14766 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
14767
14768         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
14769
14770         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
14771
14772         * mempool.c (mono_mempool_alloc): Speed this up a bit.
14773         (mono_mempool_alloc0): Ditto.
14774
14775 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14776
14777         * socket-io.c:
14778         (create_object_from_sockaddr): it was allocating 4 extra bytes
14779         for the AF_UNIX data. Fixes bug #77747.
14780
14781 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
14782
14783         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
14784
14785 2006-03-09  Dick Porter  <dick@ximian.com>
14786
14787         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
14788         Fixes bug 76966 again.
14789
14790 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
14791
14792         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
14793         names from r57532
14794         * appdomain.c: Bumped corlib version to 48 (due to r57532)
14795
14796 2006-03-07  Martin Baulig  <martin@ximian.com>
14797
14798         * object.c
14799         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
14800
14801 2006-03-07  Martin Baulig  <martin@ximian.com>
14802
14803         * class.c
14804         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
14805         regression introduced in r56970; see gtest-252.cs.
14806
14807         * loader.c (mono_get_method_constrained): Correctly handle generic
14808         methods; see gtest-253.cs.
14809
14810 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
14811
14812         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
14813
14814 2006-03-04  Martin Baulig  <martin@ximian.com>
14815
14816         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
14817         compute the parent type at runtime, just like we're already doing
14818         it for interfaces.
14819
14820         * reflection.c
14821         (mono_reflection_bind_generic_parameters): Don't compute the
14822         parent type anymore.
14823
14824         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
14825
14826 2006-03-04  Martin Baulig  <martin@ximian.com>
14827
14828         * mono-debug-debugger.h
14829         (mono_debugger_create_notification_function): Allocate memory at
14830         runtime and return a pointer to it.
14831
14832 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
14833
14834         * assembly.c: Fix windows build.
14835         
14836         * assembly.c: Fix build.
14837
14838         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
14839
14840         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
14841         
14842 2006-03-03  Dick Porter  <dick@ximian.com>
14843
14844         * process.c
14845         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
14846         Check parameters before dereferencing them.  Fixes Aaron's part of
14847         bug 77393.
14848
14849 2006-03-03  Raja R Harinath  <rharinath@novell.com>
14850
14851         Fix performance regression.
14852         * loader.c (find_method_in_class): Add 'from_class' argument.
14853         Rename 'klass' argument to 'in_class'.  The signature is compared
14854         against the method in 'in_class', and the corresponding method is
14855         returned from 'from_class'.
14856         (find_method): Walk both 'in_class' and 'from_class' in parallel.
14857         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
14858         type definition and generic instantiation in parallel.
14859         (mono_get_method_constrained): Update to changes.
14860
14861 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
14862
14863         * threads.c: make sure the domain is correct, too when doing
14864         mono_thread_attach ().
14865
14866 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
14867
14868         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
14869         windows. Fixes #77683.
14870
14871 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
14872
14873         * object.h, *: introduced specific way to set elements of an array
14874         of references to be used as write barrier. Still need to audit the
14875         uses of mono_array_addr.
14876
14877 2006-03-01  Miguel de Icaza  <miguel@novell.com>
14878
14879         * object-internals.h: New field to cache the assmebly name, patch
14880         from Tambet Ingo (tambet@ximian.com)
14881
14882 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
14883
14884         * decimal.h, class-internals.h, metadata-internals.h,
14885         file-io.h: mark a few function declarations as internal, to
14886         reduce the number of PLT entries.
14887
14888 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14889
14890         * file-io.c: fix typo in warning message.
14891
14892 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
14893
14894         * loader.c: on unix, lookup the "*A" version of a function
14895         if charset is auto as a second option before failing.
14896
14897 2006-02-28  Raja R Harinath  <rharinath@novell.com>
14898
14899         * class.h (mono_class_inflate_generic_method): Revert to two
14900         argument version.
14901         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
14902         (mono_class_inflate_generic_method_full): Add.
14903         * class.c (mono_class_inflate_generic_method_full): Rename from
14904         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
14905         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
14906         * loader.c, reflection.c: Update to changes.
14907
14908 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
14909
14910         * icall.c: const fixes and small improvements.
14911
14912 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14913
14914         * threadpool.c: for asynchronous connect(), enable the same workaround
14915         for BSD 6 as for the Mac. Fixes bug #77637.
14916
14917 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
14918
14919         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
14920         formatted classes. Fixes #77524.
14921
14922 2006-02-24  Raja R Harinath  <rharinath@novell.com>
14923
14924         * class.c (inflate_generic_type): Add a couple more
14925         micro-optimizations.
14926         (inflate_generic_context): Don't use the 'gmethod' from
14927         'inflate_with'.
14928         (mono_class_inflate_generic_method): If the method has generic
14929         parameters, but the passed-in context doesn't have a 'gmethod',
14930         create one.  Use the possibly simplified generic instantiation
14931         from the declaring class instead of the one passed in.
14932
14933 2006-02-24  Raja R Harinath  <harinath@gmail.com>
14934
14935         Make generic method signature and method header handling lazy.
14936         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
14937         (inflate_generic_header): Likewise.
14938         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
14939         parameter to avoid inflating types.
14940         (mono_get_inflated_method): Empty out.
14941         * class.h (mono_class_inflate_generic_method): Update to changes.
14942         * loader.c (mono_get_method_from_token): Don't parse signature for
14943         generic methods, nor methods of generic classes.
14944         (mono_method_signature): Rename from 'mono_method_signature'.
14945         Inflate signature on demand.
14946         (mono_method_get_header): Inflate method header on demand.
14947         * reflection.c: Update to changes.
14948
14949 2006-02-23  Raja R Harinath  <rharinath@novell.com>
14950
14951         * metadata.c (mono_metadata_inflate_generic_inst): If the
14952         instantiation is closed, don't bother expanding it in the new
14953         context.
14954         * class.c (inflate_generic_class): If the generic instantiation
14955         doesn't change after inflation, return the argument itself.
14956         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
14957         Add bounds checks.
14958         (inflate_generic_context): If neither the generic class nor the
14959         generic method instantiations change, return the original context.
14960         * reflection.c (mono_method_get_object): Do
14961         'mono_get_inflated_method' before accessing the ->klass field.
14962         (inflate_mono_method): Don't create a MonoGenericMethod unless
14963         necessary.
14964         (inflate_method): Don't pass a constructed type as the declaring
14965         type of a methodbuilder.
14966
14967 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
14968
14969         * object.c: fix memory overwrite.
14970
14971 2006-02-22  Dick Porter  <dick@ximian.com>
14972
14973         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
14974         it doesn't work any more.
14975         (mono_threads_request_thread_dump): Fix unused variable warnings.
14976
14977 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
14978
14979         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
14980         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
14981         the public header file.
14982
14983 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
14984
14985         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
14986
14987 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
14988
14989         * class-internals.h, object.c: reduce the size of MonoVTable
14990         and store the interface_offsets array at negative offsets.
14991
14992 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
14993
14994         * metadata.c: tweak table descriptors data structures to reduce
14995         size and runtime relocations.
14996
14997 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
14998
14999         * marshal.c: fix some types and opcodes to be type-safe
15000         in marshaling wrappers.
15001
15002 2006-02-21  Ankit Jain  <jankit@novell.com>
15003
15004         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
15005
15006 2006-02-21  Raja R Harinath  <rharinath@novell.com>
15007
15008         * metadata.c (get_constraints): Relax debugging checks for monodis.
15009
15010 2006-02-21  Ankit Jain  <jankit@novell.com>
15011
15012         * metadata.c (mono_metadata_load_generic_params): Move the code
15013         checking for ambiguous generic params from here to mono/dis/get.c
15014         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
15015
15016 2006-02-21  Raja R Harinath  <harinath@gmail.com>
15017
15018         Fix assertion triggered when compiling nemerle.
15019         * class.c (mono_get_shared_generic_inst): Rename from
15020         get_shared_inst and make non-static.
15021         * loader.c (mono_get_shared_generic_method): New.  Used to create
15022         the MonoGenericContext-equivalent of a MonoGenericContainer.
15023         (mono_get_method_from_token): Initialize the 'context' field of
15024         the created MonoGenericContainer.
15025         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
15026         * metadata.c (get_constraints): Add sanity check.
15027         * class-internals.h: Add new internal methods.
15028
15029         * reflection.c (verify_safe_for_managed_space): New sanity check.
15030         Currently checks that owner-less generic parameters aren't allowed
15031         in managed space.
15032         (mono_type_get_object): Use it.
15033         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
15034         that are now in mono_type_get_object.
15035         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
15036
15037 2006-02-19  Raja R Harinath  <harinath@gmail.com>
15038
15039         * metadata.c (mono_type_create_from_typespec): Rename from
15040         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
15041         argument and caching of types in the generic container.
15042         (unwrap_arrays, find_generic_param): Remove.
15043         * metadata-internals.h: Update.
15044         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
15045
15046 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
15047
15048         * class.c (mono_class_get_exception_for_failure): Fix a warning.
15049
15050         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
15051         return values. Fixes #77581.
15052
15053         * class.c (mono_fnptr_class_get): Switch name and name_space.
15054
15055         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
15056         classes and add support for [In, Out] attributes.
15057         (mono_marshal_free_asany): Ditto. Fixes #77524.
15058
15059 2006-02-18  Raja R Harinath  <harinath@gmail.com>
15060
15061         * class.c (mono_class_from_generic_parameter): Make more robust to
15062         incomplete MonoGenericContainers from monodis.
15063
15064 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
15065
15066         * class-internals.h: added some more exception types.
15067         * class.c, metadata.c: added a few checks to handle missing
15068         types.
15069
15070 2006-02-17  Raja R Harinath  <rharinath@novell.com>
15071
15072         Use owner-less generic-params some more.
15073         * class.c (my_mono_class_from_generic_parameter): Remove.
15074         (mono_class_from_generic_parameter): Handle null image,
15075         param->name and param->owner.
15076         (mono_class_from_mono_type): Update.
15077         (mono_class_create_from_typespec): Remove 'container' parameter.
15078         If that parameter is non-null, the result is always inflated by
15079         'mono_class_get_full' anyway.
15080         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
15081         parameter.
15082         (mono_class_get_full): Update.
15083
15084         * class.c (inflate_generic_type) [GENERICINST]: If the generic
15085         instance is not open, don't bother inflating.
15086         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
15087         parse metadata for inflated classes.
15088         (_mono_class_get): Change GenericContext* parameter to
15089         GenericContainer*.
15090         (mono_class_create_from_typespec): Likewise.  Simplify, and
15091         implement trivially.  All the cases are handled in
15092         mono_class_from_mono_type.  Don't inflate returned class.
15093         (mono_class_get_full): Delegate GENERICINST optimization to
15094         inflate_generic_type.
15095         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
15096
15097 2006-02-16  Dick Porter  <dick@ximian.com>
15098
15099         * socket-io.c (create_object_from_sockaddr): Fix typo.
15100         (create_sockaddr_from_object): Check array lengths before
15101         potentially accessing items off the end.
15102         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
15103         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
15104         (ves_icall_System_Net_Sockets_Socket_Send_internal)
15105         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
15106         length checks to avoid wraparound overflows.
15107         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
15108         contents of the array of sockets
15109         (hostent_to_IPHostEntry2)
15110         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
15111         Check return value of inet_ntop ().
15112         (addrinfo_to_IPHostEntry): Fix typo
15113
15114 2006-02-16  Raja R Harinath  <rharinath@novell.com>
15115
15116         Type metadata parsing doesn't use generic-instantiation information.
15117         * metadata.c (mono_metadata_parse_array_full): Change
15118         MonoGenericContext* parameter to MonoGenericContainer*.
15119         (mono_metadata_parse_type_full): Likewise.
15120         (mono_type_create_from_typespec_full): Likewise.
15121         (mono_metadata_parse_mh_full): Likewise.
15122         (mono_metadata_parse_generic_inst): Likewise.
15123         (do_mono_metadata_parse_generic_class): Likewise.
15124         (do_mono_metadata_parse_type): Likewise.
15125         * metadata-internals.h: Update to changes.
15126         * class.c (mono_class_find_enum_basetype): Likewise.
15127         (mono_class_setup_fields): Likewise.
15128         (mono_class_create_from_typespec): Likewise.
15129         * loader.c (method_from_methodspec): Likewise.
15130         (mono_get_method_from_token): Likewise.
15131         (mono_method_get_header): Likewise.
15132
15133 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
15134
15135         * marshal.c: handle additional GENERICINST case (patch from
15136         Thong Nguyen <tum@veridicus.com>).
15137         Fix a few cases where LDIND_I/STIND_I was used for references.
15138
15139 2006-02-16  Raja R Harinath  <rharinath@novell.com>
15140
15141         * reflection.c (mono_reflection_get_token): Remove unused variable.
15142
15143 2006-02-16  Martin Baulig  <martin@ximian.com>
15144
15145         * reflection.c (mono_reflection_get_token): Add support for fields
15146         in instantiated generic types.
15147
15148         * icall.c
15149         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
15150
15151 2006-02-15  Martin Baulig  <martin@ximian.com>
15152
15153         * icall.c
15154         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
15155         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
15156         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
15157         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
15158
15159 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
15160
15161         * class.c, metadata.c, metadata.h, object.c, icall.c,
15162         marshal.c: changed mono_type_get_underlying_type () to do
15163         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
15164         Fixed handling of instantiated generic valuetypes (bug #75479).
15165
15166 2006-02-15  Raja R Harinath  <rharinath@novell.com>
15167
15168         * metadata.c (mono_metadata_decode_signed_value): Simplify.
15169         Delegate to mono_metadata_decode_value, and work on the returned value.
15170
15171         * icall.c (ves_icall_MonoType_GetGenericArguments):
15172         Add consistency check here too.
15173         
15174 2006-02-15  Ankit Jain  <jankit@novell.com>
15175
15176         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
15177         char/short etc.
15178
15179 2006-02-15  Ankit Jain  <jankit@novell.com>
15180
15181         * metadata.c (mono_metadata_decode_signed_value): New function to decode
15182         signed values, used only for representing lower bounds of arrays.
15183         (mono_metadata_parse_array_full): Use new
15184         mono_metadata_decode_signed_value to decode lower bounds.
15185
15186 2006-02-14  Martin Baulig  <martin@ximian.com>
15187
15188         * reflection.c
15189         (mono_reflection_get_token): Support "MonoGenericMethod" and
15190         "MonoGenericCMethod" and allow generic instances / methods.
15191
15192 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
15193
15194         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
15195         to obtain the terminal size using an ioctl.
15196
15197         * object.c (mono_nullable_init): Revert this as nullable reference
15198         types are not valid.
15199         (mono_nullable_box): Ditto.
15200
15201 2006-02-09  Dick Porter  <dick@ximian.com>
15202
15203         * threads.c (mono_thread_detach): Drop a reference to the thread
15204         we're detaching.
15205
15206 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
15207
15208         * object.c (mono_nullable_init): Handle nullable reference types.
15209         (mono_nullable_box): Ditto. Fixes #77446.
15210
15211 2006-02-07  Martin Baulig  <martin@ximian.com>
15212
15213         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
15214
15215 2006-02-07  Ankit Jain  <jankit@novell.com>
15216
15217         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
15218         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
15219         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
15220         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
15221         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
15222         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
15223
15224 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
15225
15226         * class.c (mono_class_create_generic): Set type_token as well.
15227
15228         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
15229         compatible with MS.
15230
15231 2006-02-02  Martin Baulig  <martin@ximian.com>
15232
15233         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
15234         has never been used so far.
15235
15236 2006-02-02  Martin Baulig  <martin@ximian.com>
15237
15238         * mono-debug-debugger.h: Changed comment at the top of this file;
15239         the header is not installed, but it's safe to #include it from
15240         within the JIT.
15241
15242         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
15243         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
15244
15245 2006-02-02  Martin Baulig  <martin@ximian.com>
15246
15247         * mono-debug.h
15248         (MonoSymbolTable): Removed the `metadata_info' field.
15249
15250         * mono-debug.c
15251         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
15252
15253         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
15254         (mono_debugger_add_builtin_types): Removed.
15255         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
15256         (mono_debugger_create_notification_function): We now operate on a
15257         pre-allocated area; take a `gpointer' and return `void'.
15258
15259         * mono-debug-debugger.c
15260         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
15261         (mono_debugger_add_builtin_types): Removed.
15262
15263 2006-02-02  Martin Baulig  <martin@ximian.com>
15264
15265         * threads.c (mono_debugger_create_all_threads): New public method.
15266
15267 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
15268
15269         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
15270         breaks on several platforms.
15271
15272 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
15273
15274         * assembly.c: the VS.NET build doesn't supply default values for
15275         MONO_ASSEMBLIES and MONO_CFG_DIR.
15276
15277 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
15278
15279         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
15280         helper function.
15281
15282         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
15283
15284         * loader.c (method_from_memberref): Fix a warning.
15285
15286         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
15287
15288         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
15289         with explicit layout. Fixes #77433.
15290
15291 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
15292
15293         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
15294         max_interface_id is initialized before using it. Fixes #77398.
15295         (ves_icall_Type_GetInterfaces): Ditto.
15296
15297 2006-01-30  Raja R Harinath  <rharinath@novell.com>
15298
15299         * metadata.c (mono_metadata_parse_method_signature_full): Don't
15300         allocate memory for parameter attributes when parsing memberref
15301         signatures.
15302         * loader.c (mono_loader_set_error_method_load): Don't warn.
15303         (method_from_memberref): Ensure MissingMethodException gets thrown
15304         if method is not found.  Make warning more informative.
15305
15306 2006-01-29  Raja R Harinath  <harinath@gmail.com>
15307
15308         Fix #77397
15309         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
15310         return true if is byref.
15311         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
15312         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
15313         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
15314
15315 2006-01-27  Raja R Harinath  <rharinath@novell.com>
15316
15317         Fix tests/find-method.2.il
15318         * loader.c (find_method, find_method_in_class): Remove is_inflated
15319         argument.  Revert 2006-01-18 change.
15320         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
15321         is generic, search for method in its generic definition.
15322         * class.c (mono_class_setup_vtable_general): Print generic
15323         arguments of generic types in debugging printf.
15324
15325 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
15326
15327         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
15328
15329         * threads.c (mono_threads_request_thread_dump): New helper function.
15330
15331 2006-01-25  Raja R Harinath  <rharinath@novell.com>
15332
15333         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
15334
15335 2006-01-25  Ankit Jain  <jankit@novell.com>
15336
15337         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
15338         move definition to ..
15339         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
15340         
15341 2006-01-25  Ankit Jain  <jankit@novell.com>
15342             Raja R Harinath  <rharinath@novell.com>
15343
15344         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
15345         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
15346         as necessary.
15347
15348 2006-01-25  Martin Baulig  <martin@ximian.com>
15349
15350         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
15351         `MonoDebuggerThread' into debug-debugger.c.
15352
15353 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
15354
15355         * profiler.c: fix printing of data.
15356
15357 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
15358
15359         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
15360           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
15361
15362 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
15363
15364         * object.c: fix deadlock related to string interning.
15365
15366 2006-01-23  Martin Baulig  <martin@ximian.com>
15367
15368         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
15369
15370         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
15371
15372 2006-01-23  Martin Baulig  <martin@ximian.com>
15373
15374         * mono-debug.h: Moved the prototypes of some functions which are
15375         used by the JIT here from mono-debug-debugger.h.
15376
15377 2006-01-21  Martin Baulig  <martin@ximian.com>
15378
15379         * Makefile.am: Don't install mono-debug-debugger.h.
15380
15381 2006-01-21  Martin Baulig  <martin@ximian.com>
15382
15383         * mono-debug-debugger.h: Enforce the private status of this header
15384         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
15385         Moved some stuff from mono-debugger-jit-wrapper.h here.
15386
15387 2006-01-20  Raja R Harinath  <rharinath@novell.com>
15388
15389         * class.c (mono_class_from_typeref): Add a sanity test to help
15390         catch lack of assembly load/search hooks.
15391
15392 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
15393
15394         * marshal.c (emit_struct_conv): Relax the fields with same offset
15395         check even more. Fixes #77230.
15396
15397 2006-01-18  Martin Baulig  <martin@ximian.com>
15398
15399         * loader.c (find_method_in_class): Added `gboolean is_inflated'
15400         argument; if false, we compare the uninstantiated signatures.
15401         (method_from_memberref): Compare the uninstantiated signatures;
15402         fixes #76417.
15403
15404 2006-01-18  Robert Jordan  <robertj@gmx.net>
15405
15406         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
15407         Clear the weak link. Fixes bug #77170.
15408
15409         * gc.c (mono_gchandle_free):
15410         Reflect *-gc.c changes (tiny optimization).
15411
15412 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
15413
15414         * metadata.c (mono_metadata_signature_dup): Applied patch from
15415         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
15416         Fixes #77288.
15417
15418 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
15419
15420         * marshal.c (emit_struct_conv): Allow fields with the same offset when
15421         marshalling from native to managed code. Fixes #77230.
15422
15423 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15424
15425         * threadpool.c: fix problem (Mac only) when more than one asynchronous
15426         connect. Fixes bug #77020.
15427
15428 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
15429
15430         * class.c: fixed id assignement for nested interfaces (bug #77275).
15431         Added also better info for --print-vtable debugging.
15432
15433 2006-01-12  Martin Baulig  <martin@ximian.com>
15434
15435         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
15436         interfaces on-the-fly; fixes #76625.
15437
15438         * class-internals.h
15439         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
15440         don't need that anymore.
15441
15442 2006-01-12  Miguel de Icaza  <miguel@novell.com>
15443
15444         * socket-io.c
15445         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
15446         To avoid initing the nested_classes when not needed I turned the
15447         PeerCredData as a toplevel internal class, as it has to be shared
15448         anyways. 
15449
15450         Fixes the CASA issue.
15451
15452 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
15453
15454         * domain.c: Accessors for MonoJitInfo
15455
15456         * profiler-private.h: Add jitinfo to the end jit hook
15457
15458         * profiler.[ch]: Define new hooks, called after jitting which give
15459         the MonoJitInfo that was compiled
15460
15461 2006-01-10  Martin Baulig  <martin@ximian.com>
15462
15463         * class.c (mono_class_setup_events): Add support for generic
15464         classes; fixes #76440.
15465
15466 2006-01-06  Raja R Harinath  <rharinath@novell.com>
15467
15468         Fix #77160.
15469         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
15470         on passed-in method.
15471
15472 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
15473
15474         * object.c (mono_runtime_invoke_array): Add Nullable support.
15475
15476         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
15477
15478 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
15479
15480         * file-io.c: Don't consider sockets as directory and avoid an endless
15481         loop. Fix bug #76966.
15482
15483 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
15484
15485         * object.c (mono_nullable_init): New helper function.
15486         (mono_nullable_box): Ditto.
15487
15488         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
15489
15490         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
15491
15492         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
15493         
15494 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
15495
15496         * class.c (mono_class_is_assignable_from): Make T assignable to 
15497         Nullable<T>.
15498
15499 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
15500
15501         * appdomain.c: Bump corlib version to 46.
15502         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
15503         serialization purpose) and changed ves_icall_System_Reflection_
15504         Assembly_get_code_base signature to accept a boolean (to escape, or 
15505         not, the assembly code base).
15506
15507 2005-12-23  Dick Porter  <dick@ximian.com>
15508
15509         * icall.c: 
15510         * threads-types.h: 
15511         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
15512         CreateEvent icall now returns "created" boolean parameter.
15513
15514 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
15515
15516         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
15517         #76967.
15518
15519         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
15520         when attr_klass is an interface. Fixes #77045.
15521
15522 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
15523
15524         * marshal.c (emit_struct_conv): Fix previous patch.
15525         
15526         * marshal.c (emit_struct_conv): Add a check for fields with the same
15527         offset.
15528
15529 2005-12-20  Raja R Harinath  <rharinath@novell.com>
15530
15531         Fix regression in Mono.C5.
15532         * class.c (mono_class_create_generic): If 'klass' is an interface
15533         set up the interface offsets.
15534         (mono_class_is_assignable_from): Don't throw away generic arguments.
15535
15536 2005-12-19  Raja R Harinath  <rharinath@novell.com>
15537
15538         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
15539         type parameters.
15540
15541 2005-12-15  Raja R Harinath  <rharinath@novell.com>
15542
15543         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
15544         dead store.
15545         (do_mono_metadata_parse_generic_class): Don't pass the current
15546         generic context when parsing the type being instantiated: it
15547         cannot use it, anyway.
15548
15549         * loader.c (method_from_memberref): Don't inflate a signature if
15550         it doesn't contain any type parameters.
15551
15552 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
15553
15554         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
15555
15556 2005-12-14  Martin Baulig  <martin@ximian.com>
15557
15558         * class.c
15559         (mono_type_get_name_recurse): Don't return null for type
15560         parameters and open generic classes.
15561         (mono_class_setup_methods): Don't exclude generic instances.
15562         (mono_get_unique_iid): Use different IDs for different
15563         instantiations of the same generic type.
15564         (mono_class_setup_vtable): Only use setup_generic_vtable() for
15565         open generic instances; create a normal vtable for closed generic
15566         instances.
15567         (mono_class_setup_vtable_general): We're now also called for
15568         closed generic instances.
15569
15570         * reflection.c
15571         (mono_reflection_bind_generic_parameters): Correctly use
15572         mono_metadata_lookup_generic_inst() everywhere.
15573
15574 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
15575
15576         * object.c (mono_class_create_runtime_vtable): Call 
15577         mono_class_setup_vtable ().
15578
15579         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
15580         function.
15581         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
15582         #76959.
15583
15584         * loader.c (mono_loader_set_error_type_load): Print the type load
15585         warnings to the console so they are more visible to the user.
15586         (mono_loader_set_error_method_load): Ditto.
15587
15588         * reflection.c (ensure_runtime_vtable): Revert the last change as it
15589         is still broken.
15590         
15591         * reflection.c (ensure_runtime_vtable): Fix build.
15592
15593         * reflection.c (ensure_runtime_vtable): Disable an optimization which
15594         doesn't work in all cases.
15595
15596 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
15597
15598         * object.c (mono_array_new_full): Treat a single dimensional array
15599         with 0 lower bounds as an szarray. Fixes #76973.
15600
15601         * reflection.c (custom_attr_visible): Really fix this.
15602
15603 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
15604
15605         * reflection.c (custom_attr_visible): Allow nested public attributes
15606         as well.
15607
15608         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
15609         interface check.
15610
15611 2005-12-12  Raja R Harinath  <harinath@gmail.com>
15612
15613         * class.c (set_generic_param_owner): Delete.
15614         (mono_class_create_from_typedef): Don't set ->owner field of
15615         generic parameters to "param containers" of enclosing classes.
15616         * reflection.c (mono_reflection_initialize_generic_parameter):
15617         Likewise.
15618
15619 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
15620
15621         * reflection.c (custom_attr_visible): Fix build.
15622
15623 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
15624
15625         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
15626         private attributes.
15627         
15628         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
15629         handling of null parameter defaults.
15630
15631 2005-12-09  Raja R Harinath  <rharinath@novell.com>
15632
15633         * class.c (mono_class_from_generic_parameter): Don't set
15634         klass->generic_container.
15635         (my_mono_class_from_generic_parameter): Likewise.
15636
15637 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
15638
15639         * reflection.c (load_public_key): Fix a warning.
15640         (method_encode_code): Fix unaligned accesses.
15641
15642 2005-12-07  Martin Baulig  <martin@ximian.com>
15643
15644         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
15645
15646         * reflection.c
15647         (write_generic_param_entry): Encode our custom attrs.
15648
15649         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
15650
15651 2005-12-07  Martin Baulig  <martin@ximian.com>
15652
15653         * reflection.c (encode_new_constraint): Removed; we don't use the
15654         `NewConstraintAttribute' anymore.
15655
15656 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
15657
15658         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
15659         not fire a TypeResolve event when Assembly.GetType () is called.
15660
15661 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
15662
15663         Beginning of support for nullable types in the runtime. Parts of
15664         this patch are from Martin.
15665
15666         * appdomain.c (MONO_CORLIB_VERSION): Bump
15667
15668         * domain.c (mono_init_internal): get the nullable type
15669
15670         * class.c (mono_class_is_nullable): New method
15671         (mono_class_get_nullable_param): New mehod
15672         (mono_class_create_generic): In types T? set cast_class to T
15673
15674         * class-internals.h (MonoDefaults): new nullable default class
15675         (mono_class_get_nullable_param, mono_class_get_nullable_param):
15676         new methods.
15677
15678 2005-12-05  Raja R Harinath  <rharinath@novell.com>
15679
15680         * metadata.c (select_container): New.  Refactor code to select the
15681         appropriate GenericContainer given the type of generic parameter
15682         we are looking for.
15683         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
15684         not a MonoGenericContext.  Use select_container.  Update parameters.
15685         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
15686         and MONO_TYPE_MVAR.
15687         (unwrap_arrays): Remove duplicate tests.
15688         (find_generic_param): Rename from 'has_same_context'.  Now walks a
15689         generic instantiated class to find any arguments that are generic
15690         parameters.
15691         (mono_type_create_from_typespec_full): Use find_generic_param to
15692         avoid evicting some generic instantiations from the typespec
15693         cache.
15694
15695 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
15696
15697         * reflection.c: fixed writing of doubles on ARM FPA.
15698
15699 2005-12-02  Robert Jordan  <robertj@gmx.net>
15700
15701         * icall.c: Fixed EventInfo.ReflectedType (#76829).
15702
15703 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15704
15705         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
15706         least on SUSE 10 they are not the same (on debian, they are just the
15707         same thing).
15708
15709 2005-12-01  Raja R Harinath  <rharinath@novell.com>
15710
15711         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
15712         DeclaringType for VARs and MVARs.
15713         * class.c (set_generic_param_owner): Fix initialization of owner
15714         fields.
15715
15716 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
15717
15718         * icall.c: fixed Enum.ToObject() to correctly convert the values.
15719
15720 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15721
15722         * threadpool.c: workaround for a bug that shows up on the Mac:
15723         select()+connect() on a blocking socket is not like it should
15724         be, so we proceed to connect() in that case, wasting the I/O
15725         threadpool thread until connect succeedes. Fixes bug #75436.
15726
15727 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15728
15729         * threadpool.c: fix typo when setting file descriptor states.
15730
15731 2005-11-28  Raja R Harinath  <rharinath@novell.com>
15732
15733         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
15734         * metadata.c (mono_metadata_parse_method_signature_full): Don't
15735         create a temporary signature container.
15736         (mono_metadata_parse_generic_param): Update to changes.
15737         (mono_type_create_from_typespec_full): Update to changes.
15738         * loader.c (method_from_memberref): Don't use a
15739         MonoGenericContainer while parsing a memberref signature.
15740         (method_from_methodspec): Remove dead-store of the 'container'
15741         variable.  It's overwritten before use.
15742
15743         * metadata.c (mono_type_create_from_typespec_full): Make debugging
15744         checks tighter.
15745         (mono_metadata_parse_generic_param): Likewise.
15746         * loader.c (find_method_in_class): Does not need a
15747         MonoGenericContainer.  Use 'mono_method_signature' rather than
15748         'mono_method_signature_full'.
15749         (find_method, mono_get_method_constrained, method_from_memberref):
15750         Update to changes.
15751
15752         * metadata.c (mono_type_create_from_typespec_full): Ensure that
15753         owner-less generic-parameters are never evicted from the typespec
15754         cache.
15755
15756         * loader.c (method_from_memberref): Don't use the current context
15757         when parsing signatures.
15758         (method_from_methodspec, mono_get_method_from_token): Update to changes.
15759
15760         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
15761         side-effects in g_assert.
15762         * loader.c (mono_get_method_from_token): Resolve klass earlier so
15763         that we don't potentially lose information.
15764
15765 2005-11-26  Dick Porter  <dick@ximian.com>
15766
15767         * icall.c:
15768         * threads.c: icalls to implement basic (ie, not named)
15769         System.Threading.Semaphore.
15770
15771 2005-11-24  Dick Porter  <dick@ximian.com>
15772
15773         * process.c
15774         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
15775         Use GetProcessId() if it's available.
15776
15777 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
15778
15779         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
15780
15781 2005-11-23  Raja R Harinath  <rharinath@novell.com>
15782             Ankit Jain  <jankit@novell.com>
15783
15784         * loader.c (mono_get_method_from_token): Initialize 'method' field
15785         of all generic parameters before parsing the signature.  Remove
15786         code that "fixed"-up MVAR references.
15787
15788 2005-11-23  Ankit Jain  <jankit@novell.com>
15789
15790         * metadata.c (mono_metadata_has_generic_params):
15791         (mono_metadata_load_generic_param_constraints):
15792         (mono_metadata_load_generic_params): Move duplicate code ...
15793         (mono_metadata_get_generic_param_row): ... here. Returns the
15794         first row-id in GenericParam table for a given owner (token).
15795         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
15796         prototype.
15797
15798 2005-11-23  Raja R Harinath  <rharinath@novell.com>
15799             Ankit Jain  <jankit@novell.com>
15800
15801         * metadata.c (mono_metadata_class_equal): Pass signature_only when
15802         comparing VARs too.
15803         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
15804         type->data.generic_param only if the type is an MVAR.
15805         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
15806         leak owner-less VARs and MVARs into managed space.
15807
15808 2005-11-21  Martin Baulig  <martin@ximian.com>
15809
15810         * class-internals.h
15811         (MonoMethod): Moved the `generic_container' here from
15812         `MonoMethodNormal' since we now also need it for
15813         `MonoMethodPInvoke';
15814         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
15815         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
15816         an union containing both `MonoMethodNormal' and
15817         `MonoMethodPInvoke'.
15818
15819         * loader.c
15820         (mono_get_method_from_token): Allow implementing generic methods
15821         as interncalls.
15822
15823         * threads.c
15824         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
15825         icall.
15826
15827 2005-11-17  Dick Porter  <dick@ximian.com>
15828
15829         * icall.c: 
15830         * process.h: 
15831         * process.c: Split the Process Start_internal icall into
15832         ShellExecuteEx_internal and CreateProcess_internal, which are
15833         called depending on whether UseShellExecute is true.  Fixes bug
15834         76670.
15835
15836         * appdomain.c (MONO_CORLIB_VERSION): Incremented
15837
15838 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
15839
15840         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
15841         'msize' parameters, use the information in 'mspec' instead.
15842         (emit_object_to_ptr_conv): Ditto.
15843
15844         * marshal.c (emit_struct_conv): Handle explicit layout structs with
15845         fields out of order. Fixes #76733.
15846
15847 2005-11-17  Ankit Jain  <jankit@novell.com>
15848
15849         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
15850
15851 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
15852
15853         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
15854           bug #76575.
15855
15856 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
15857
15858         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
15859         for types with non-auto layout. Fixes #76717.
15860
15861 2005-11-16  Ankit Jain  <jankit@novell.com>
15862
15863         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
15864         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
15865         if generic_context is null.
15866           (mono_metadata_generic_param_equal): param->owner can be null.
15867           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
15868         null.
15869
15870 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
15871
15872         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
15873         the correct value.
15874
15875 2005-11-15  Martin Baulig  <martin@ximian.com>
15876
15877         * object.c (set_value): Use mono_class_from_mono_type() instead of
15878         the hack for generic instances; fixes #76136.
15879
15880 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
15881
15882         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
15883         fields.
15884
15885         * image.c (load_metadata_ptrs): Initialize the new fields.
15886
15887         * reflection.c (create_dynamic_mono_image): Ditto.
15888
15889         * reflection.c (build_compressed_metadata): Use the new fields.
15890
15891         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
15892         icall.
15893
15894         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
15895         icall.
15896         
15897 2005-11-15  Ankit Jain  <jankit@novell.com>
15898             Raja R Harinath  <harinath@gmail.com>
15899
15900         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
15901         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
15902         new per-generic_container cache if the cached MonoType's context matches
15903         the current context.
15904           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
15905         to the expected context.
15906           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
15907
15908 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
15909
15910         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
15911         we changed the signature of an icall.
15912         * icall.c: Modify to mono_double_ParseImpl return true/false 
15913         depending on the success, instead of throwing the exception. This will
15914         help us in Double.TryParse methods.
15915         
15916 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
15917
15918         * marshal.c (emit_marshal_object): Throw an exception when
15919         marshalling 'object' instead of crashing. Fixes #76696.
15920
15921 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
15922
15923         * class-internals.h: Add prototype for mono_type_get_full_name ().
15924
15925 2005-11-11  Dick Porter  <dick@ximian.com>
15926
15927         * threads.c (mono_thread_manage): Make sure the main thread has
15928         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
15929
15930 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
15931
15932         * loader.c (mono_loader_set_error_type_load): Log a warning to the
15933         console about the missing type.
15934         (mono_loader_set_error_method_load): Ditto.
15935
15936 2005-11-09  Miguel de Icaza  <miguel@novell.com>
15937
15938         * mono-config.c (mono_get_config_dir): Set the system defaults if
15939         none is specified.
15940
15941         * assembly.c (mono_set_dirs): New API entry point to set the
15942         assembly and the config directory in one call
15943
15944 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
15945
15946         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
15947         the ftnptr was created from a delegate in a domain other than the
15948         current domain. Fixes #75377.
15949
15950         * exception.h exception.c: Add mono_get_exception_not_supported ().
15951
15952 2005-11-08  Martin Baulig  <martin@ximian.com>
15953
15954         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
15955
15956 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
15957
15958         * security-manager.h: Added definitions to deal with strongname key 
15959         pairs bigger (and smaller) than 1024 bits.
15960         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
15961         adjust wrt the public key length being used.
15962
15963 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
15964
15965         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
15966           Windows build (r51396-51397).
15967
15968 2005-11-03  Martin Baulig  <martin@ximian.com>
15969
15970         * class.c (mono_class_setup_vtable_general): Also add generic
15971         methods to the vtable; fixes #76581.
15972
15973 2005-11-01  Miguel de Icaza  <miguel@novell.com>
15974
15975         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
15976         sure that we lookup GetString method from the System.Text.Encoding
15977         class, not the derived class or we get an empty method.
15978
15979         Fixed class #76612.
15980
15981 2005-10-25  Miguel de Icaza  <miguel@novell.com>
15982
15983         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
15984         if it has been previously set (embedders). 
15985
15986         Make mono_set_rootdir available also on Unix.
15987
15988 005-10-24  Robert Jordan  <robertj@gmx.net>
15989
15990         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
15991
15992 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
15993
15994         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
15995         only calls which are made to native code use this flag.
15996
15997         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
15998
15999 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
16000
16001         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
16002         Add support for FieldBuilders.
16003
16004 2005-10-29  Martin Baulig  <martin@ximian.com>
16005
16006         * mono-debug.c
16007         (mono_debug_using_mono_debugger): New public method; returns
16008         whether we're running inside the debugger.
16009
16010 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
16011
16012         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
16013         for Method/Constructor/FieldBuilders.
16014
16015 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
16016
16017         * reflection.c (module_add_cattrs): Save custom attributes for global methods
16018         and fields as well.
16019
16020 2005-10-26  Martin Baulig  <martin@ximian.com>
16021
16022         * mono-debug-debugger.c
16023         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
16024
16025 2005-10-24  Raja R Harinath  <harinath@gmail.com>
16026
16027         * icall.c (base64_to_byte_array): Don't pass an out-of-range
16028         integer to isspace.
16029
16030 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
16031
16032         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
16033         when passing valuetypes byref. Fixes #76502.
16034
16035 2005-10-19  Jackson Harper  <jackson@ximian.com>
16036
16037         * profiler.c: Don't put a . in front of types that are not in a
16038         namespace.
16039
16040 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
16041
16042         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
16043
16044 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
16045
16046         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
16047         #76436.
16048         (mono_marshal_get_ldflda_wrapper): Fix a warning.
16049
16050 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
16051
16052         * assembly.c metadata-internals.h icall.c: Define an additional
16053         parameter for mono_assembly_name_parse_full, so we can avoid creating
16054         S.R.AssemblyName.Version when no version info wasn't passed.
16055         
16056 2005-10-09  Miguel de Icaza  <miguel@novell.com>
16057
16058         * class.c (mono_type_get_full_name): Reimplement method that was
16059         removed. 
16060
16061         * image.c: Some docs
16062
16063 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
16064
16065         * profiler.c (output_newobj_profile): Fix printing of Total memory
16066         on x86.
16067
16068 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
16069
16070         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
16071
16072 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
16073
16074         * threads.c: remove debug output.
16075
16076 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
16077
16078         * threads.c (mono_thread_manage): Fix crashes if more than 64
16079         threads need to be aborted. Hopefully fixes #75899.
16080
16081         * assembly.c (mono_stringify_assembly_name): New helper function.
16082
16083         * class.c: Use mono_stringify_assembly_name instead of the similar
16084         static function.
16085
16086         * assembly.h assembly.c: Add support for calling a postload search 
16087         hook if an assembly cannot be loaded.
16088
16089         * appdomain.c: Register new search hooks which call the AssemblyResolve
16090         events in AppDomain. Fixes #75231
16091
16092 2005-10-07  Martin Baulig  <martin@ximian.com>
16093
16094         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
16095         methods without debug info.
16096
16097 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
16098
16099         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
16100         wrappers.
16101
16102 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16103
16104         * file-io.c: now that we return symlinks, use lstat and, when the file
16105         is a symbolic link, stat, to get the file attributes. Also avoid the
16106         conversion to/from utf16/external.
16107
16108 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
16109
16110         * class.c (mono_class_layout_fields): Compute klass->has_references
16111         correctly if an embedded valuetype is not yet initialized. Fixes
16112         #76331.
16113
16114 2005-10-04  Martin Baulig  <martin@ximian.com>
16115
16116         * metadata.c
16117         (mono_metadata_load_generic_param_constraints): New public
16118         function; splitted the constraints loading out from
16119         mono_metadata_load_generic_params().
16120
16121         * class.c (mono_class_create_from_typedef): Call
16122         mono_metadata_load_generic_param_constraints() after setting up
16123         the type and creating our parent; fixes #75329.
16124
16125 2005-10-04  Martin Baulig  <martin@ximian.com>
16126
16127         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
16128         non-dynamic parent classes.
16129
16130 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
16131
16132         * file-io.c : win32 build fix (ETXTBSY seems not found).
16133
16134 2005-10-04  Martin Baulig  <martin@ximian.com>
16135
16136         * reflection.c
16137         (mono_image_get_methodspec_token): Make the cache actually work;
16138         fixes #75974.
16139
16140 2005-10-04  Martin Baulig  <martin@ximian.com>
16141
16142         * class.c (mono_class_name_from_token): Removed the unneccessary
16143         `MonoGenericContext *' argument.
16144
16145 2005-10-04  Martin Baulig  <martin@ximian.com>
16146
16147         * loader.c
16148         (method_from_methodspec): Make the caching work again; fixes the
16149         performance regression from #76262.
16150
16151 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16152
16153         * file-io.c:
16154         * file-io.h:
16155         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
16156         GetFileSystemEntries that performs the same work but without going
16157         into io-layer, locking, etc.
16158
16159 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
16160
16161         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
16162         ThreadState_Stopped as well. Fixes #76047.
16163
16164 2005-09-29  Martin Baulig  <martin@ximian.com>
16165
16166         * class.c
16167         (inflate_generic_context): If the new context has a `gmethod', set
16168         its `container' that that gmethod's `container'.
16169
16170         * metadata.c
16171         (mono_metadata_parse_generic_param): Simplify things;
16172         `generic_container = generic_context->container;' is just fine.
16173
16174         * loader.c (method_from_methodspec): Code cleanups.
16175
16176 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
16177
16178         * decimal.c: fix warning (and let gcc generate correct
16179         code on ARM with optimizations).
16180
16181 2005-09-28  Martin Baulig  <martin@ximian.com>
16182
16183         * loader.c
16184         (method_from_memberref): Added `MonoGenericContext *class_context'
16185         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
16186         (method_from_methodspec): If we're a memberref, use the enclosing
16187         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
16188
16189 2005-09-28  Martin Baulig  <martin@ximian.com>
16190
16191         * object.c (mono_runtime_invoke_array): Added support for
16192         MONO_TYPE_GENERICINST; fixes #75917.
16193
16194 2005-09-27  Martin Baulig  <martin@ximian.com>
16195
16196         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
16197         `k->byval_arg.type' to determine the actual type.
16198
16199         * loader.c (method_from_methodspec): Removed some hacks.
16200
16201 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
16202
16203         * class-internals.h (mono_field_is_deleted): Do the test for
16204         rtspecialname before we check the actual name of the field. This
16205         prevents us from dereferencing a pointer into the string table,
16206         saving us from accessing a few pages
16207
16208         * *.c: Replace the use of {Enter,Leave}CriticalSection with
16209         macros. This will allow a deadlock debugger to easily be plugged
16210         in.
16211
16212 2005-09-27  Martin Baulig  <martin@ximian.com>
16213
16214         * loader.c (method_from_methodspec): Create a "signature"
16215         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
16216
16217 2005-09-27  Martin Baulig  <martin@ximian.com>
16218
16219         * class.c
16220         (inflate_generic_class): Correctly set the new context's
16221         container.
16222
16223         * loader.c
16224         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
16225         instead of a `MonoGenericContext *'.
16226         (mono_method_signature_full): Take a `MonoGenericContainer *'
16227         instead of a `MonoGenericContext *'.
16228
16229         * metadata.c
16230         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
16231         instead of a `MonoGenericContext *'.
16232         (mono_metadata_parse_method_signature_full): Likewise.
16233
16234 2005-09-26  Martin Baulig  <martin@ximian.com>
16235
16236         * class.c
16237         (mono_class_from_generic_parameter): Set `klass->generic_container'
16238         (mono_class_from_generic_parameter): Likewise.
16239         (mono_bounded_array_class_get): We inherit the generic container
16240         from the element class.
16241
16242         * loader.c
16243         (find_method, find_method_in_class): Take a `MonoGenericContext *'
16244         argument rather than computing it here.
16245         (method_from_memberref): Correctly set the generic context before
16246         parsing the signature.  Fixes #75681.
16247
16248 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
16249
16250         * object.c (mono_class_has_special_static_fields): Fix warnings.
16251
16252 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
16253
16254         * assembly.c: Add parse_public_key function, to
16255         par the public keys. Also added mono_assembly_name_parse_full,
16256         to define it the parsed key should be freed or not.
16257         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
16258         to parse a long format assembly name.
16259         * metadata-internals.h: Keep mono_assembly_name_parse_full as
16260         private, since calling it to preserve the key requires
16261         freeing it manually.
16262         
16263 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
16264
16265         * locales.c : removed HAVE_ICU part.
16266
16267 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
16268
16269         * object.c (mono_class_create_runtime_vtable): Avoid calling 
16270         field_is_special_static if the klass has no special static fields.
16271
16272         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
16273         (MonoCachedClassInfo): Likewise.
16274
16275         * object.c (mono_class_has_special_static_fields): New helper function.
16276
16277 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
16278
16279         * class.c (mono_class_create_from_typedef): Don't call 
16280         interfaces_from_typedef_full for enums.
16281         (mono_class_create_from_typedef): Compute the base types of enums directly
16282         without calling mono_class_setup_fields ().
16283         (mono_class_find_enum_basetype): New helper function.
16284
16285         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
16286         one place inside the string heap.
16287         
16288 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
16289
16290         * class.c: locking fixes, code cleanups, some docs added.
16291         Allocate some data structures in the image mempool.
16292
16293 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
16294
16295         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
16296         the example code.
16297         
16298 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
16299
16300         * class-internals.h, class.c, reflection.c: reduce memory taken by
16301         MonoClass.
16302
16303 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
16304
16305         * metadata.c, metadata.h, loader.h: documentation updates, code and
16306         API cleanups.
16307
16308 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
16309
16310         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
16311         the example code.
16312
16313         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
16314         page faults caused by the runtime while reading metadata.
16315
16316 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16317
16318         * socket-io.c: the field names were changed 3 months ago and no one
16319         realized until bug #76077 got filed!
16320
16321 2005-09-20  Martin Baulig  <martin@ximian.com>
16322
16323         * icall.c (assembly_icalls): Removed some unused debugger icalls.
16324
16325 2005-09-20  Martin Baulig  <martin@ximian.com>
16326
16327         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
16328         write the rank into the class entry.
16329
16330 2005-09-20  Martin Baulig  <martin@ximian.com>
16331
16332         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
16333
16334 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
16335
16336         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
16337
16338         * icall.c (custom_attrs_defined_internal): New icall.
16339
16340         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
16341         function.
16342         (mono_custom_attrs_construct_by_type): New helper function.
16343
16344 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
16345
16346         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
16347         terminate the resulting string. Fixes #76123.
16348
16349 2005-09-16  Martin Baulig  <martin@ximian.com>
16350
16351         * mono-debug.c
16352         (mono_debug_add_method): Ignore inflated methods for the moment.
16353
16354 2005-09-14  Martin Baulig  <martin@ximian.com>
16355
16356         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
16357
16358 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
16359
16360         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
16361         return a success/failure indication.
16362         (mono_metadata_interfaces_from_typedef_full): Ditto.
16363         (get_constraints): Ditto.
16364
16365 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
16366
16367         * marshal.c (emit_marshal_array): Fix handling of null arrays.
16368         
16369         * marshal.c (emit_marshal_array): Add support for returning string
16370         arrays from delegates. Fixes #76063.
16371
16372         * marshal.c: Use the emit_ldloc/stloc macros where possible.
16373
16374 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
16375
16376         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
16377         icall.
16378
16379 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
16380
16381         * reflection.c icall.c: Fix after mono_get_exception_type_load
16382         signature change.
16383
16384         * assembly.c (mono_assembly_get_assemblyref): New helper function.
16385         (mono_assembly_load_reference): Use the new helper.
16386
16387         * class-internals.h (MonoLoaderError): New structure containing 
16388         information about type loading errors.
16389
16390         * class-internals.h loader.c: Add APIs to store per-thread loader
16391         error information.
16392
16393         * loader.c class.c: Set the loader error if needed.
16394
16395         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
16396
16397 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
16398
16399         * decimal.c: fixed to handle the broken ARM fp format.
16400
16401 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
16402
16403         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
16404         broken.
16405
16406 2005-09-06  Martin Baulig  <martin@ximian.com>
16407
16408         * domain.c (supported_runtimes): Added v2.0.50727.
16409
16410 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
16411
16412         * culture-info.h: reduce the size of some structures.
16413
16414 2005-09-05  Martin Baulig  <martin@ximian.com>
16415
16416         Reflect latest API changes in the August CTP.
16417
16418         * icall.c
16419         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
16420         ("MonoType.HasGenericArguments"): Removed.
16421         ("MonoMethod.BindGenericParameters"): Renamed to
16422         "MakeGenericMethod".
16423         ("MethodBuilder.BindGenericParameters"): Renamed to
16424         "MakeGenericMethod".    
16425
16426 2005-09-05  Martin Baulig  <martin@ximian.com>
16427
16428         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
16429
16430 2005-09-05  Martin Baulig  <martin@ximian.com>
16431
16432         Applying a patch from Michal Moskal <malekith@nemerle.org>.
16433
16434         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
16435         generic_container is non-NULL.
16436
16437 2005-09-05  Martin Baulig  <martin@ximian.com>
16438
16439         Applying a patch from Michal Moskal <malekith@nemerle.org>.
16440
16441         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
16442
16443 2005-08-29  Michal Moskal  <malekith@nemerle.org>
16444
16445         * reflection.c (encode_locals,
16446         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
16447         for large generic types.
16448
16449 2005-09-05  Martin Baulig  <martin@ximian.com>
16450
16451         Applying a patch from Michal Moskal <malekith@nemerle.org>.
16452
16453         * class.c (mono_dup_array_type): New public method.
16454         (mono_metadata_signature_deep_dup): New public method.
16455         (dup_type): Correctly duplicate array and function types.
16456
16457 2005-09-05  Martin Baulig  <martin@ximian.com>
16458
16459         Applying a patch from Michal Moskal <malekith@nemerle.org>.
16460
16461         * reflection.c (get_default_param_value_blobs): Handle generic types
16462         and generic methods.
16463
16464 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
16465
16466         * class.c: Fixed error reporting (method/class were inversed) for 
16467         inheritance demands.
16468         * security-manager.c|h: Added the AppDomain when calling the managed
16469         System.Security.SecurityManager.InheritanceDemand method.
16470
16471 2005-09-01  Raja R Harinath  <rharinath@novell.com>
16472
16473         * reflection.c (encode_marshal_blob): 'marshaltype' and
16474         'marshaltyperef' are alternate sources for the custom marshaler
16475         name.
16476
16477 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
16478
16479         * class.c: fix creation of array classes with rank == 1
16480         (patch by Ankit Jain <jankit@novell.com>).
16481
16482 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
16483
16484         * object.c: fix check for creating the bound data for arrays vs
16485         szarrays.
16486
16487 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16488
16489         * object.c: configuration file name is now based on the executable name,
16490         not the image name. Fixes bug #75931.
16491
16492 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
16493
16494         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
16495         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
16496
16497 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
16498
16499         * rand.c: Use wincrypt.h instead of WinCrypt.h.
16500
16501 2005-08-24  Ankit Jain  <jankit@novell.com>
16502             Raja R Harinath  <rharinath@novell.com>
16503
16504         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
16505           called by it recursively.
16506           (mono_class_init): Remove special case in pending_init handling, since it's
16507           superseded by the fix to mono_class_from_typeref.
16508
16509 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
16510
16511         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
16512         BROKEN_THREAD_START stuff.
16513
16514 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
16515
16516         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
16517         trampoline.
16518
16519         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
16520         
16521         * object.c (mono_delegate_ctor): Replace the original function address with
16522         a delegate trampoline.
16523
16524 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
16525
16526         * icall.c: add boolean argument to base64_to_byte_array and 
16527         InternalFromBase64String to control whether a whitespace-only string
16528         is allowed (or should casue a FormatException to be thrown). We need
16529         this as the behavior has changed between MS.NET 1.x and 2.0, and we
16530         to match the MS behaviour in both profiles.
16531         * appdomain.c: Bump corlib version.
16532
16533 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
16534
16535         This patch implements a big portion of publisher policy
16536         support, used to bind assembly versions and redirect
16537         one assembly from version A to version B.
16538
16539         * assembly.c:
16540         New GSList loaded_assembly_bindings, for storing the cached
16541         assembly bindings.
16542         (assembly_binding_maps_name): New static function for checking if a 
16543         assembly binding information maps an assembly name.
16544         (mono_assembly_binding_info_free): New function for freeing
16545         assembly binding information resources.
16546         (get_publisher_policy_info): New static function for retrieving 
16547         assembly binding information from a MonoImage.
16548         (compare_versions): New static function for comparing an assembly
16549         binding information data and the version of an assembly name.
16550         (check_policy_versions): New static function for checking if an
16551         assembly binding info mapping an assembly name is valid for it.
16552         (mono_assembly_load_publisher_policy): New static function for
16553         loading the 'policy.major.minor.MyAssembly' image for an assembly
16554         with an assembly name 'aname'.
16555         (mono_assembly_bind_version): New static function for updating
16556         assembly redirection.
16557         (mono_assembly_apply_binding): New static function for applying
16558         assembly binding.
16559         (search_binding_loaded): New static function for searching 
16560         loaded assembly binding infos in the cache domain.
16561         (mono_assembly_load_full): Don't apply assembly binding for
16562         reflection only assemblies.
16563
16564         * metadata-internals.h: Add MonoAssemblyBindingInfo,
16565         which contains information about assembly binding. Also
16566         declare signature for mono_config_parse_publisher_policy ()
16567         function, used to retrieve pub policy info.
16568         
16569         * mono-config.c:
16570         (publisher_policy_start): New static function used to parse publisher 
16571         policy config files.
16572         (publisher_policy_parser): New static MonoParseHandler containing 
16573         the functions used when parsing config files.
16574         (mono_config_parse_publisher_policy): New function for parsing
16575         publisher policy files.
16576         
16577 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
16578
16579         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
16580
16581         * marshal.c (mono_delegate_free_ftnptr): Ditto.
16582
16583         * object.c (mono_get_addr_from_ftnptr): New helper function.
16584
16585         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
16586
16587         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
16588
16589 2005-08-19  Dick Porter  <dick@ximian.com>
16590
16591         * threads.c, threads.h, appdomain.c, appdomain.h,
16592         profiler-private.h, monitor.c, object.c, object-internals.h,
16593         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
16594         store the thread ID, so it can hold a 64 bit value if needed.
16595
16596 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
16597
16598         * reflection.c (mono_reflection_create_dynamic_method): Store the
16599         handle class into the method references as well so ldtoken works in
16600         dynamic methods.
16601
16602         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
16603         types.
16604
16605 2005-08-19  Ankit Jain <jankit@novell.com>
16606
16607         Fix #75847.
16608         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
16609           here rather than using the method signature of a arbitrary function
16610           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
16611           two arguments.
16612           Hack done with Harinath.
16613
16614 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16615
16616         * threadpool.c: disable printing stack traces when we get a exception
16617         in a threadpool thread. I need to do more testing to figure out which
16618         cases actually print this. Fixes bug #75828.
16619
16620 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16621
16622         * icall.c: there might be ignored whitespace after the last '='. This
16623         fixes length computation and bug #75840.
16624
16625 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
16626
16627         * assembly.c (mono_assembly_load_full): Consider .exe extension as
16628         well. Fixes #75809.
16629
16630         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
16631         #75784.
16632         
16633         * reflection.c (create_custom_attr_data): Ditto.
16634
16635 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
16636
16637         * locales.c, culture-info.h : removed RegionLCIDMap.
16638         * culture-info-tables.h : regenerated.
16639
16640 2005-08-16  Martin Baulig  <martin@ximian.com>
16641
16642         * class.c (mono_type_get_name_recurse): Small fix.
16643
16644 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
16645
16646         * locales.c : indentation fixie.
16647
16648 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
16649
16650         * object-internals.h,
16651           locales.h,
16652           locales.c,
16653           culture-info.h,
16654           icall.c : added RegionInfo table support.
16655         * culture-info-table.h : regenerated for region support.
16656
16657 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
16658
16659         * reflection.c (resolve_object): handle all kinds of MonoMethod
16660         including generic ones
16661
16662 2005-08-12  Ankit Jain <jankit@novell.com>
16663
16664         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
16665           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
16666
16667 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
16668
16669         * process.c: Don't close a thread handle when it's NULL. This is a
16670         workaround for bug #75733.
16671
16672 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
16673
16674         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
16675
16676 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
16677
16678         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
16679
16680 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16681
16682         * threadpool.c: if a work item in the thread pool has a callback that
16683         catches a exception, don't propagate it after invoking the callback.
16684         Fixes bug #75336.
16685
16686 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
16687
16688         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
16689
16690         * class-internals.h (MonoCachedClassInfo): Add some new fields.
16691
16692         * class.c (mono_class_init): Load field info lazily in the AOT case.    
16693
16694         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
16695
16696 2005-08-03  Ankit Jain  <jankit@novell.com>
16697
16698         Fix #75683.
16699         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
16700           PInvoke calling convention is 0.
16701
16702 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
16703
16704         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
16705         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
16706
16707 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
16708
16709         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
16710         to handle threads not started by the GC (patch by Michael Meeks
16711         <michael.meeks@novell.com>).
16712
16713 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
16714
16715         * reflection.c: Make buffer used in emitting types larger for some
16716         big generic types (patch by Michal Moskal).
16717
16718 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
16719
16720         * mono-debug.c: Fix some (not all) alignment problems.
16721
16722 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
16723
16724         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
16725         Invoke mono_image_load_from_data_full passing the refonly
16726         parameter.
16727
16728         * assembly.c
16729         (mono_assembly_open_from_bundle): Add the refonly argument, 
16730         in order to pass it to other methods it calls to.
16731         (do_mono_assembly_open): Add the refonly argument, in order 
16732         to pass it to other methods it calls to.
16733         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
16734         the refonly parameter to it.
16735
16736         * image.c: Add loaded_images_refonly_hash and
16737         loaded_images_refonly_guid_hash to cache the reflection
16738         only loaded images.
16739         (mono_images_init): Initialize the hash tables used for
16740         caching the reflection only images.
16741         (load_modules): Invoke mono_image_open_full passing the refonly
16742         parameter to load the modules the correct way.
16743         (build_guid_table): Add the refonly argument, to re-build the 
16744         correct hash table.
16745         (do_mono_image_open): Added the refonly argument, in order to
16746         define it for the loaded image.
16747         (mono_image_loaded_full): New function, which receives an
16748         additional parameter to look for the image in the refonly or
16749         non-refonly section.
16750         (mono_image_loaded): Updated, using mono_image_loaded_full.
16751         (mono_image_loaded_by_guid_full): The same case that happens
16752         with mono_image_loaded_full.
16753         (mono_image_loaded_by_guid): Likewise.
16754         (register_image): Use the ref_only variable inside MonoImage
16755         to decide in which hash table store the current image.
16756         (mono_image_open_from_data_full): Rename
16757         mono_image_open_from_data to mono_image_open_from_data_full,
16758         adding the refonly argument, to define the ref_only variable 
16759         inside MonoImage.
16760         (mono_image_open_from_data): Return 
16761         mono_image_open_from_data_full.
16762         (mono_image_open_full): Rename mono_image_open to
16763         mono_image_open_full, receiving the new refonly argument,
16764         to pass it to inner methods.
16765         (mono_pe_file_open): Update this function, to open
16766         a MonoImage as a non-refonly image.
16767         (mono_image_close): Use the refonly variable inside
16768         MonoImage to remove the image from the correct caches.
16769
16770         * image.h: Add the signatures of mono_image_open_full,
16771         mono_image_open_from_data_full, mono_image_loaded_full,
16772         mono_image_loaded_by_guid_full.
16773
16774         * metadata-internals.h: Add the ref_only field to 
16775         MonoImage.
16776         
16777 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
16778
16779         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
16780         Fix the last behavior, which used to load the assemblies and
16781         extract MonoReflectionAssemblyName information, instead of
16782         extract it from the metadata tables. Needed for Reflection
16783         Only assemblies.
16784         
16785 2005-07-29  Martin Baulig  <martin@ximian.com>
16786
16787         * mono-debug-debugger.c
16788         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
16789         not initialized.
16790
16791         * mono-debug.c
16792         (mono_debug_address_from_il_offset): Check whether we have
16793         debugging support before attempting to take the lock.
16794         (mono_debug_source_location_from_address): Likewise.
16795         (mono_debug_source_location_from_il_offset): Likewise.
16796         (mono_debug_il_offset_from_address): Likewise.
16797         (mono_debug_address_from_il_offset): Likewise.
16798
16799 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
16800
16801         * class.c (mono_class_from_name_case): Add support for dynamic images.
16802         Fixes #75650.
16803
16804         * object.c (mono_class_compute_gc_descriptor): Add a workaround
16805         for #75479.
16806
16807 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
16808         
16809         * reflection.c (mono_method_get_object): Fix warning.
16810
16811 2005-07-28  Martin Baulig  <martin@ximian.com>
16812
16813         * mono-debug.c
16814         (mono_debug_add_wrapper): Also write the wrapper type.
16815
16816 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
16817
16818         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
16819         
16820         * class.c (mono_class_init): Avoid reading nested classes if the AOT
16821         data indicates the class has none.
16822
16823 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
16824
16825         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
16826         loader lock with the debugger lock. Prevents deadlocks for beagle.
16827
16828         Beagle can now run on an smp box for a weekend without any
16829         issues. Woohoo!
16830
16831 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
16832
16833         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
16834         in a module. Fixes #75629.
16835
16836 2005-07-26  Martin Baulig  <martin@ximian.com>
16837
16838         * mono-debug.c (mono_debug_add_wrapper): New static method.
16839         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
16840         interncall or a wrapper.
16841
16842         * mono-debug.h (MonoDebugWrapperData): New public typedef.
16843         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
16844         (MONO_DEBUGGER_VERSION): Bump to 51.
16845
16846         * mono-debug-debugger.c
16847         (mono_debugger_add_type): Removed this empty function.
16848         (mono_debugger_add_method): Likewise.
16849
16850 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
16851
16852         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
16853         before accessing method->slot.
16854
16855 2005-07-21  Jb Evain  <jbevain@gmail.com>
16856
16857         * reflection.c (method_encode_clauses/class): Handle filters clauses.
16858         Fixes #75010.
16859
16860 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
16861
16862         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
16863         #75587.
16864
16865 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
16866
16867         * image.h image.c: Add mono_image_get_guid () API function.
16868
16869 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
16870
16871         There were issues when multiple threads tried to load
16872         assemblies. A deadlock was created between assemblies_mutex and
16873         mono_domain_assemblies_lock. This fixes the issue by making the
16874         assembly ref counting be lock free. See bug 75586.
16875         
16876         * image.c (mono_image_close): The add ref function here was using
16877         Interlocked operations while the unref was using a mutex and a
16878         --. I don't think this was ever a bug that would be exposed in a
16879         non-pendantic way (ie, by an embedder doing a ref on one thread
16880         and an unref on another), but for the sake of correctness, this is
16881         now Interlocked.
16882
16883         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
16884         (mono_assembly_load_reference): Call mono_assembly_addref rather
16885         than touching the refcount ourselves.
16886         (mono_assembly_close): Use InterlockedDecrement to unref the
16887         assembly. Don't acquire the lock unless it is actually needed.
16888
16889 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
16890
16891         * class.c (mono_class_layout_fields): Fix calculation of has_references
16892         for generic types.
16893
16894 2005-07-12  Martin Baulig  <martin@ximian.com>
16895
16896         Applying a patch from Michal Moskal <malekith@nemerle.org>.
16897
16898         * metadata.c
16899         (mono_type_hash): Provide better hashing for generic instances.
16900         (mono_generic_inst_hash): Improve hashing.
16901         (mono_generic_class_hash): Likewise.
16902
16903         * reflection.c (mymono_metadata_type_hash): Improve hashing for
16904         generic instances.
16905
16906 2005-07-12  Martin Baulig  <martin@ximian.com>
16907
16908         * reflection.c (mono_reflection_create_runtime_class): Remove the
16909         hack for generic type definitions and non-`Run' assemblies.
16910         (mono_reflection_bind_generic_parameters): Also use
16911         `klass->wastypebuilder' to check for TypeBuilders.
16912
16913 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
16914
16915         * class.c (mono_class_layout_fields): Fix calculation of has_references
16916         for generic types.
16917
16918         * class.c (inflate_generic_class): Fix a leak.
16919         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
16920         for generic types.
16921
16922 2005-07-11  Martin Baulig  <martin@ximian.com>
16923
16924         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
16925         on error.
16926
16927 2005-07-11  Martin Baulig  <martin@ximian.com>
16928
16929         * loader.c (find_method): Also lookup in
16930         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
16931
16932 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
16933
16934         * appdomain.c (mono_domain_unload): Don't free the error message
16935         before passing it to mono_get_exception_...
16936
16937         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
16938         
16939 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
16940
16941         * threads.c: try to better guess an available RT signal (bug #75387).
16942
16943 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
16944
16945         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
16946         and CACHE_OBJECT.
16947
16948 2005-07-07  Martin Baulig  <martin@ximian.com>
16949
16950         * class.c (mono_type_get_name_full): Return NULL for
16951         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
16952         fixes #75408.
16953
16954 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
16955
16956         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
16957         exit the appdomain as well being aborted.
16958
16959         * threadpool.c: Create all threadpool threads inside the root appdomain, and
16960         change back to the root domain after calling managed code. This enables
16961         appdomains using threadpools to be unloaded.
16962
16963 2005-07-07  Martin Baulig  <martin@ximian.com>
16964
16965         * class-internals.h
16966         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
16967         into `MonoDynamicGenericClass' since we only need it for dynamic
16968         types.
16969
16970         * reflection.c (mono_class_bind_generic_parameters): We don't need
16971         to compute the `parent' here.
16972
16973 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
16974
16975         * culture-info-table.h : regenerated.
16976
16977 2005-07-06  Martin Baulig  <martin@ximian.com>
16978
16979         * icall.c
16980         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
16981
16982         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
16983
16984 2005-07-06  Martin Baulig  <martin@ximian.com>
16985
16986         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
16987         we're doing a signature-only comparision; fixes #74945.
16988
16989 2005-07-06  Martin Baulig  <martin@ximian.com>
16990
16991         * class-internals.h (MonoGenericClass): Moved some things out into
16992         a new `MonoInflatedGenericClass' type.  
16993         (MonoInflatedGenericClass): New type; the `klass' of a
16994         `MonoGenericClass' is now computed lazyly in
16995         mono_get_inflated_generic_class().      
16996
16997         * class.c (mono_get_inflated_generic_class): New public function.
16998         (mono_class_inflate_generic_method): Removed the unused
16999         `MonoClass *' argument.
17000         (setup_generic_vtable): Don't call mono_get_inflated_method() on
17001         all the methods.
17002         (mono_class_create_generic): Make this static and merge it with
17003         mono_class_create_generic_2(); we're now called automatically from
17004         mono_get_inflated_generic_class().
17005
17006         * loader.c (mono_method_signature): Call
17007         mono_get_inflated_method() here.
17008
17009 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
17010
17011         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
17012         type of fields with RVA.
17013
17014         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
17015         for this pseudo class.
17016         (my_mono_class_from_generic_parameter): Likewise.
17017         (mono_class_init): Allow interfaces to have cctors.
17018
17019 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
17020
17021         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
17022         lazily for AOT methods.
17023
17024 2005-07-05  Martin Baulig  <martin@ximian.com>
17025
17026         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
17027         returns FALSE for a successful match, not TRUE.
17028
17029 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
17030
17031         * loader.c (mono_method_get_index): Optimize this a bit.
17032
17033 2005-07-04  Martin Baulig  <martin@ximian.com>
17034
17035         * class.c
17036         (class_compute_field_layout): Move the check for generic type
17037         definitions into mono_class_layout_fields().  Fixes #74684.
17038         (mono_class_from_generic_parameter): Correctly compute
17039         `klass->parent'; fixes #75457.
17040
17041         * reflection.c (register_assembly, register_module): Make sure
17042         `domain->rejobject_hash' is already created.
17043
17044 2005-07-02  Martin Baulig  <martin@ximian.com>
17045
17046         * class-internals.h
17047         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
17048         `MonoDynamicGenericClass'.      
17049
17050 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
17051
17052         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
17053         returned by a field getter is null, since null is a valid value.
17054
17055 2005-07-01  Martin Baulig  <martin@ximian.com>
17056
17057         * reflection.c (mono_reflection_generic_class_initialize): Update
17058         the `dgclass->fields [i].parent' to the correct class.
17059         (mono_image_get_fieldref_token): Use the declaring type, not the
17060         reflected type.
17061
17062 2005-07-01  Martin Baulig  <martin@ximian.com>
17063
17064         * loader.c (find_method): Also look in the interfaces; fixes #75429.
17065
17066 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
17067
17068         * threads.c (thread_cleanup): assert that thread != NULL
17069         (wait_for_tids_or_state_change): We were using the wrong variable
17070         when accessing wait->threads. `i' was always out of the bounds of
17071         the array.
17072
17073 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17074
17075         * loader.c: map user32 and kernel32 to libMonoSupportW
17076
17077 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
17078
17079         * appdomain.c (unload_thread_main): Mark this as WINAPI.
17080
17081 2005-06-28  Martin Baulig  <martin@ximian.com>
17082
17083         * loader.c (method_from_methodspec): Fix #75334.
17084
17085 2005-06-28  Martin Baulig  <martin@ximian.com>
17086
17087         Fix #74953 - Arrays now implement the generic IList<T> interface
17088         on the 2.0 platform.
17089
17090         * class-internals.h (MonoDefaults): Added `generic_array_class'.
17091
17092         * reflection.c (mono_class_bind_generic_parameters): New public
17093         function; similar to mono_reflection_bind_generic_parameters(),
17094         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
17095
17096         * domain.c (mono_init_internal): Try to initialize.
17097         `mono_defaults.generic_array_class' here; this'll only succeed if
17098         we're using the 2.0 corlib.
17099
17100         * icall.c
17101         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
17102         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
17103         (mono_lookup_internal_call): Added support for nested classes.
17104
17105         * loader.c
17106         (mono_get_method_from_token): Set `result->signature->pinvoke' if
17107         we're an interncall and have generic arguments.
17108
17109         * class.c
17110         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
17111         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
17112         instance of System.Array.InternalArray<T> for arrays, so they
17113         implement the generic IList<T> interface.
17114
17115 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
17116
17117         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
17118         (chastamar@yahoo.com). Fixes #75374.    
17119
17120 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
17121
17122         * culture-info-table.h: regenerated.
17123
17124 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17125
17126         * icall.c: handle spaces correctly for base64 strings.
17127
17128 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
17129
17130         * *.c: Kill some warnings.
17131
17132 2005-06-23  Duncan Mak  <duncan@novell.com>
17133
17134         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
17135         that this builds on Solaris 10 (x86).
17136
17137 2005-06-23  Martin Baulig  <martin@ximian.com>
17138
17139         * class.c
17140         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
17141         generic type definitions.
17142
17143 2005-06-23  Martin Baulig  <martin@ximian.com>
17144
17145         Fix #75331.
17146
17147         * metadata.c (mono_class_get_overrides): Renamed to
17148         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
17149         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
17150         pass it to mono_get_method_full().
17151
17152 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
17153
17154         * reflection.c (mono_reflection_create_runtime_class): take the
17155         mono_domain_lock in this method. Prevents deadlocks
17156
17157 2005-06-22  Martin Baulig  <martin@ximian.com>
17158
17159         * loader.c (method_from_methodspec): Fix #75330.
17160
17161 2005-06-22  Martin Baulig  <martin@ximian.com>
17162
17163         * reflection.c (type_get_qualified_name): Use
17164         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
17165         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
17166         argument; use it if we don't have an assembly name.
17167
17168 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
17169
17170         * object.c: In mono_message_init, set "copy out" flag for in
17171         parameters with the [Out] flag.
17172
17173 2005-06-21  Martin Baulig  <martin@ximian.com>
17174
17175         * class.c
17176         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
17177         and MONO_TYPE_PTR.
17178
17179 2005-06-21  Martin Baulig  <martin@ximian.com>
17180
17181         * class.c (mono_class_init): Don't initialize `class->fields' for
17182         generic instances since they're initialized again in
17183         compute_field_layout(). 
17184         (compute_field_layout): Set the field's `generic_info' here; fix
17185         #75320. 
17186
17187 2005-06-21  Martin Baulig  <martin@ximian.com>
17188
17189         * class-internals.h
17190         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
17191
17192         * metadata.c (mono_metadata_generic_method_equal): Also
17193         distinguish the `generic_class'; fixes #75334.
17194
17195 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17196
17197         * domain.c:
17198         * appdomain.c:
17199         * domain-internals.h:
17200         * reflection.c: 'domain_assemblies' field is now protected by its own
17201         lock. Don't call into managed code to run the AssemblyLoad event if we
17202         now there are no registered delegates for it.
17203
17204 2005-06-20  Martin Baulig  <martin@ximian.com>
17205
17206         * class.c (mono_class_is_assignable_from): Use a custom version of
17207         mono_class_has_parent() to make things work for generic instances;
17208         fix #75300.
17209
17210 2005-06-20  Martin Baulig  <martin@ximian.com>
17211
17212         * loader.c (method_from_methodspec): Apply a patch from
17213         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
17214
17215 2005-06-20  Martin Baulig  <martin@ximian.com>
17216
17217         * class.c (mono_class_init): Reverted Zoltan's last change; it
17218         breaks generics.
17219
17220 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
17221
17222         * threads.c (wait_for_tids_or_state_change): Add missing locking.
17223
17224 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17225
17226         * socket-io.c: fix the index in the socket array for writable/error
17227         sockets. Fixes bug #75306.
17228
17229 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
17230
17231         * class.c (mono_class_init): Allow interfaces to have static ctors.
17232
17233 2005-06-17  Martin Baulig  <martin@ximian.com>
17234
17235         * loader.c (method_from_methodspec): Use `context->container' when
17236         parsing the `gmethod->inst'.
17237
17238 2005-06-17  Martin Baulig  <martin@ximian.com>
17239
17240         * class.c (mono_type_get_name_recurse): Don't add the assembly
17241         name for type arguments.
17242
17243 2005-06-15  Martin Baulig  <martin@ximian.com>
17244
17245         * reflection.c (mono_image_get_inflated_method_token): Encode
17246         correct klass; fixes #75260.
17247
17248 2005-06-13 Michal Moskal <malekith@nemerle.org>
17249
17250         * icall.c: Make GetCorrespondingMethod/Constructor take
17251         MonoReflectionMethod method not MonoMethod. Removed
17252         MonoType.GetCorrespondingField, and make
17253         MonoGenericType.GetCorrespondingField take name not
17254         MonoClassField.
17255
17256 2005-06-13  Michal Moskal <malekith@nemerle.org>
17257
17258         * reflection.c (field_encode_signature, encode_locals):
17259          Make sizes of buffers for types larger (for big generic types).
17260          (create_generic_typespec,
17261          mono_reflection_sighelper_get_signature_local,
17262          mono_reflection_sighelper_get_signature_field):
17263          Add asserts for too small buffers.
17264
17265 2005-06-15  Martin Baulig  <martin@ximian.com>
17266
17267         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
17268         if our parent is not a dynamic type.
17269
17270 2005-06-15  Martin Baulig  <martin@ximian.com>
17271
17272         * class-internals.h (MonoTypeNameFormat): New enum.
17273
17274         * class.c
17275         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
17276         (mono_type_get_full_name): Removed.
17277         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
17278         argument instead of the boolean's.
17279
17280         * icall.c (ves_icall_System_MonoType_getFullName):
17281         Added `gboolean assembly_qualified'.    
17282
17283         * reflection.h
17284         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
17285
17286         * reflection.c (mono_reflection_parse_type): Parse the new type
17287         name format.
17288
17289 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17290
17291         * icall.c: no need to convert from utf16 to utf8 and then back again
17292         after the call to GetLogicalDrives.
17293
17294 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17295
17296         * icall.c: frombase64. Fix problems exposed by new tests.
17297
17298 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17299
17300         * icall.c: added internal calls for converting char [] and strings in
17301         base64 into byte [].
17302
17303 2005-06-10  Martin Baulig  <martin@ximian.com>
17304
17305         * class.c (mono_class_create_generic_2): Read the nested classes
17306         from the metadata rather than from `gklass->nested_classes' since
17307         `gklass' might not be initialized yet.
17308
17309 2005-06-09  Duncan Mak  <duncan@novell.com>
17310
17311         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
17312         all public headers. Fixes #74919.
17313
17314 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
17315
17316         * domain.c: The key for proxy_vtable_hash is now a pointer
17317         array. Added new GHashFunc and GCompareFunc functions for this.
17318
17319         * class.h: The list of interfaces in MonoRemoteClass is known in
17320         advance and can't grow (we create a new MonoRemoteClass if needed),
17321         so now the interface array can be allocated together with
17322         MonoRemoteClass.
17323         
17324         * object.c: Added a new method create_remote_class_key.
17325         Fixed mono_remote_class so it does not depend on
17326         mono_upgrade_remote_class.
17327         Removed extend_interface_array.
17328         Added new method clone_remote_class(), which makes a copy of a remote
17329         class and adds a new interface or class to it.
17330         mono_upgrade_remote_class() now creates a new remote class (or gets
17331         it from the cache) if an vtable upgrade is needed. In this way
17332         we make sure that other objects sharing the same remote class
17333         don't get the new vtable with unwanted interfaces.
17334         
17335         * object-internals.h:
17336         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
17337         
17338         * marshal.c: Track changes in mono_upgrade_remote_class().
17339
17340 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
17341         * icall.c: Add runtime methods for obtaining members of inflated
17342         class, which were created from supplied non-inflated members. It
17343         is used in internal Get{Method,Constructor,Field} methods in
17344         System.Type
17345
17346 2005-06-09  Martin Baulig  <martin@ximian.com>
17347
17348         * reflection.c
17349         (mono_reflection_bind_generic_method_parameters): Fix #75169.
17350
17351 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
17352         * reflection.c (mono_image_basic_init): Define
17353         Version in MonoDynamicAssembly. 
17354         
17355 2005-06-08  Martin Baulig  <martin@ximian.com>
17356
17357         Fix #75136.
17358
17359         * loader.c
17360         (mono_method_signature_full): New public method; takes a
17361         `MonoGenericContext *'.
17362         (find_method): Use mono_method_signature_full() and pass the
17363         klass'es context to it.
17364
17365         * class.c (mono_class_is_inflated_method): Use
17366         mono_method_signature_full() and pass the context to it.
17367
17368 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
17369
17370         * object.c: add proper locking in mono_remote_class_vtable(),
17371         fixes possible memory corruption.
17372
17373 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
17374
17375         * marshal.c (mono_remoting_marshal_init): set
17376         initialized after initialization.
17377
17378 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
17379
17380         * locales.c : hush.
17381
17382 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
17383
17384         * object.c (extend_interface_array): fix really silly
17385         memory corrupting / comparison bug.
17386
17387 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
17388
17389         * reflection.c: Functions added to support the creation
17390         of CustomAttributeData, which includes Attribute data
17391         used by ReflectionOnly methods.
17392
17393         * reflection.h:  mono_reflection_get_custom_attrs_data and
17394          mono_custom_attrs_data_construct added (functions exposed).
17395
17396          * icall.c: Added mono_reflection_get_custom_attrs_data
17397          as icall.
17398         
17399 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
17400
17401         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
17402         lupus's request.
17403
17404 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
17405
17406         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
17407
17408         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
17409         dynamic DllImportAttribute.
17410
17411         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
17412         dynamic DllImportAttribute.
17413
17414         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
17415         Fixes #75162.
17416
17417 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17418
17419         * threads.c: avoid segfault when an unstarted thread is aborted.
17420
17421 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
17422
17423         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
17424         Returns the name and version of the runtime for reporting.
17425
17426 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17427
17428         * appdomain.c: bump corlib version.
17429         * object-internals.h: new field in MonoReflectionAssembly.
17430
17431 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17432
17433         * object-internals.h: Carlos forgot to add this field.
17434
17435 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
17436
17437         * icall.c: Added create_version to create instances
17438         of Version of MonoReflectionAssemblyName. This change helps
17439         the AssemblyName tests to keep running fine.
17440         
17441 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
17442   
17443         * object.c (mono_method_return_message_restore): A somehow less
17444         intrusive fix for #75138.
17445
17446 2005-06-03  Raja R Harinath  <rharinath@novell.com>
17447
17448         * object.c (mono_method_return_message_restore): Fix computation
17449         of expected number of out args.
17450
17451 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
17452
17453         * reflection.c (mono_image_get_method_info): Fix the case when the
17454         charset is empty.
17455
17456 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
17457
17458         * object.c: Added missing null check in
17459           mono_method_return_message_restore.
17460
17461 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
17462
17463         * reflection.c (mono_image_get_method_info): Handle the case when
17464         dllentry is empty.
17465
17466 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
17467
17468         * object.c: When creating the vtable for a proxy, take into account
17469         all inherited interfaces, not only the ones registered in
17470         iclass->interfaces. This fixs bug #74996.
17471         Also, in mono_method_return_message_restore, verify that the array
17472         of out args has the expected lengh.
17473
17474 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17475
17476         * socket-io.c: update the timeout in Poll when the call is interrupte.
17477
17478 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17479
17480         * socket-io.c: support abort/suspend in Select_internal after last
17481         change.
17482
17483 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17484
17485         * threadpool.c: remove warning.
17486
17487 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17488
17489         * icall.c:
17490         * socket-io.[ch]: Select_internal uses poll() now when available, thus
17491         removing the 1024 limit from select(). Runtime part of the fix for
17492         bug #71203.
17493
17494 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17495
17496         * socket-io.c: when resolving the addresses for the same
17497         host returned by gethostname(), get the local IPs from the interface
17498         list. Loopback addresses are discarded if the are interfaces up with
17499         non-loopback ones. Fixes bug #63265.
17500
17501 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
17502
17503         * appdomain.c, verify.c, object-internals.h, reflection.c:
17504         bumped corlib number to 36, and added new extra_flags field
17505         to ReflectionMethodBuilder and friends.  Fixes #75060.
17506
17507 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
17508
17509         * gc.c: register a new weak link only if the object is non-null
17510         (fixes bug#75047).
17511
17512 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
17513
17514         * culture-info.h : short time pattern too.
17515
17516 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
17517
17518         * culture-info.h : expand long time pattern string length.
17519
17520 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
17521
17522         * culture-info-table.h : update (more French date format; #72788).
17523
17524 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
17525
17526         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
17527         the method is static. Fixes #75029.
17528
17529 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
17530
17531         * reflection.c: Update the table_idx field of method builders after
17532         saving the module, since it can change. This is a workaround for
17533         bug #74914. 
17534
17535 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
17536
17537         * culture-info-table.h : update (additional French date format).
17538
17539 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
17540
17541         * icall.c (ves_icall_type_Equals): Revert last change.
17542         
17543         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
17544
17545         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
17546
17547 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
17548
17549         * class-internals.h: Added executioncontext_class field to 
17550         MonoDefaults structure.
17551         * domain.c: Cache System.Threading.ExecutionContext class in 
17552         mono_defaults.
17553         * object.c: Capture the ExecutionContext for asynchroneous calls in
17554          mono_async_result_new.
17555         * object-internals.h: Added execution_context and original_context 
17556         fields to MonoAsyncResult. Added execution_context to MonoThread.
17557         * security-manager.c|.h: Added mono_get_context_capture_method to 
17558         return the capture method (if required by the security manager or by
17559         the framework version used).
17560         * threadpool.c: Apply capture (if present) ExecutionContext in 
17561         mono_async_invoke and revert to original context after it completes.
17562
17563 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
17564
17565         * culture-info-table.h : updated (real hacky solution for zh-CHT).
17566
17567 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
17568
17569         * culture-info-table.h : zh-CHT related workaround.
17570
17571 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
17572
17573         * marshal.c (emit_marshal_custom): Add some error checking and call the
17574         methods in the ICustomMarshaler interface. Fixes #74875.
17575         
17576         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
17577         native->managed wrappers.
17578
17579 2005-05-12  Martin Baulig  <martin@ximian.com>
17580
17581         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
17582         here and use the loader lock.
17583
17584         * mono-debug.c: Properly lock when the debugger is not attached.
17585         (mono_debug_init): Release the initial lock if we're not running
17586         in the debugger.
17587
17588 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
17589
17590         * marshal.c (emit_marshal_custom): Pass through NULL values without
17591         calling the custom marshalling routines.
17592
17593         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
17594         conversion in structures. Fixes #74882.
17595
17596 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
17597
17598         * culture-info-table.h : zh-* cultures were missing.
17599
17600 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
17601
17602         * threads.c: Added a new event background_change_event which is signaled
17603         when a thread changes its background mode.
17604         Moved here several checks previously done in managed code. The checks
17605         require the thread lock, and using the thread lock in managed code
17606         can result in deadlocks.
17607         Merged Start_internal and Thread_internal into a single method. Now 
17608         Thread_internal does all work of creating and starting a thread.
17609         Added icalls for setting and getting the state of the object. Moved from
17610         managed code to avoid locking there.
17611         Added wait_for_tids_or_state_change() which is called instad of
17612         wait_for_tids when waiting for non-backround threads to end. This method
17613         will return if one of the threads ends or the background_change_event
17614         is signaled.
17615         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
17616         the background mode. This method signals the background_change_event
17617         event.
17618         * icall.c:
17619         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
17620         removed Start_internal.
17621         
17622 2005-05-11  Martin Baulig  <martin@ximian.com>
17623
17624         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
17625         to order of some fields to get proper alignment on 64-bit machines.
17626
17627 2005-05-11  Martin Baulig  <martin@ximian.com>
17628
17629         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
17630         changes as they're broken and completely fuck up the debugger.
17631
17632         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
17633
17634 2005-05-10  Martin Baulig  <martin@ximian.com>
17635
17636         * reflection.c (mono_reflection_generic_class_initialize): Don't
17637         call mono_class_setup_parent() here.
17638
17639 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17640
17641         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
17642         send/receive timeout use an integer in milliseconds. We were using a
17643         struct timeval.
17644
17645 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17646
17647         * locales.c:
17648         (internal_get_cultures): reserve the first slot of the array for the
17649         InvariantCulture, which will be filled in managed code.
17650
17651 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
17652
17653         * reflection.c (mono_image_fill_module_table): Initialize the
17654         GENERATION field as well.
17655
17656 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17657
17658         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
17659         Monitor.Enter on the object.
17660
17661 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
17662
17663         * threads.c: Enable the wait for running threads when exiting.
17664         * icall.c: Suspend all threads before exiting.
17665
17666 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
17667
17668         * assembly.c (mono_assembly_load_reference): Fix warning.
17669
17670 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17671
17672         * threadpool.c: changed the default number of threads per cpu. From now
17673         on, the default will be 20 + (5 * number of cpus) instead of 50.
17674
17675 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
17676
17677         * loader.c (mono_method_get_signature_full): Add locking here.
17678
17679 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
17680
17681         * appdomain.c: Moved methods for parsing and freeing assembly
17682         names to assembly.c.
17683         * assembly.c, domain-internals.h: Created public methods for parsing
17684         assembly names. Fixed mono_assembly_load_with_partial_name:
17685         it now finds the best match, taking into account the version,
17686         token and culture specified in the partial name. Also return
17687         the latest version if no version information is specified.
17688
17689 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
17690
17691         * threadpool.c: replace check for SocketAsyncCall class.
17692
17693 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17694
17695         * threadpool-internals.h:
17696         * Makefile.am: added threadpool-internals.h
17697
17698         * threadpool.c: call mono_unhandled_exception on exceptions not handled
17699         that happen in threadpool threads (tested on MS).
17700         (mono_thread_pool_remove_socket): new function that dispatch any pending
17701         AIO call on a socket that is closing. By now only epoll really needs it,
17702         as select/poll wake up when the socket closes.
17703
17704
17705         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
17706
17707 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
17708
17709         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
17710
17711 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
17712
17713         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
17714
17715 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
17716
17717         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
17718         has an abort request, convert it into a suspend request.
17719
17720 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
17721
17722         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
17723         warning for the usage of `UnmanagedFunctionPointerAttribute' which
17724         is not supported yet.
17725
17726 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17727
17728         * image.c: register assemblies loaded from data (bundles) in the loaded
17729         assemblies hash. Fixes bug #74772.
17730
17731 2005-04-29  Martin Baulig  <martin@ximian.com>
17732
17733         * class.c (mono_type_get_name_recurse): Update to the new naming
17734         schema from the latest .NET 2.x beta2.
17735         (mono_class_setup_vtable_general): If we're a generic instance,
17736         copy the vtable from our generic type definition and inflate all
17737         the methods in it.
17738
17739         * loader.c (find_method): Update to the new naming schema from the
17740         latest .NET 2.x beta2.
17741
17742 2005-04-29  Raja R Harinath  <harinath@gmail.com>
17743
17744         * class.c (mono_class_init): Add a mono_loader_unlock to the
17745         #74734 fix.
17746
17747 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
17748
17749         * icall.c (ves_icall_System_Environment_Exit): Remove the 
17750         suspend_all_other_threads () call for the time being, since it can hang.
17751
17752         * threads.c (mono_thread_manage): Similarly, disable the waiting for
17753         the background threads to exit, since it can also hang.
17754
17755         * class.c (mono_class_init): Applied patch from Ankit Jain 
17756         (radical@gmail.com). Avoid pending init errors when a field refers
17757         to a nested class using a typeref. Fixes #74734.
17758
17759         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
17760         this for dynamic modules.
17761
17762 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17763
17764         * threads.c: don't wait for threads that are in the process of aborting
17765         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
17766         and waiting for background threads to finish. This makes xsp and
17767         mod-mono-server exit without random length delays and/or hangs.
17768
17769 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17770
17771         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
17772
17773 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
17774
17775         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
17776         dynamic types to prevent infinite loops. Fixes #74727.
17777
17778         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
17779         ..._is_assignable_to.
17780
17781 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
17782
17783         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
17784
17785 2005-04-25  Martin Baulig  <martin@ximian.com>
17786
17787         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
17788
17789         * domain.c
17790         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
17791
17792         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
17793
17794         * reflection.c (build_compressed_metadata): Set metadata header
17795         version to 2.0.
17796
17797 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
17798
17799         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
17800         number into an integral and a decimal part. Fixes #70473.
17801
17802         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
17803
17804 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
17805
17806         * culture-info-table.h : reflected the latest locale-builder output.
17807
17808 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17809
17810         * threadpool.c: check for SuspendRequested too when deciding if
17811         mono_thread_interruption_checkpoint should be called.
17812
17813 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17814
17815         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
17816         * threads.c: remove interruption_mutex and use Interlocked instead. When
17817         suspending all the threads, wait for all the suspended events at once.
17818         If we're shutting down and get an APC that is going to be queued,
17819         call mono_thread_execute_interruption immediately, as the thread might
17820         be sleeping on a pthread condition or mutex.
17821
17822         * icall.c: call mono_runtime_set_shutting_down before suspending the
17823         threads.
17824
17825         Fixes bug #74693. And now xsp is happier when exiting.
17826
17827 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
17828
17829         * loader.c (mono_stack_walk): Fix #74690.
17830
17831 2005-04-22  Martin Baulig  <martin@ximian.com>
17832
17833         * mono-debug.h (MonoDebugMethodJitInfo): Added
17834         `MonoDebugMethodJitInfo *jit'.
17835
17836         * mono-debug.c (mono_debug_read_method): Cache the
17837         MonoDebugMethodJitInfo in `address->jit'.
17838         (mono_debug_free_method_jit_info): New public method.
17839
17840 2005-04-22  Martin Baulig  <martin@ximian.com>
17841
17842         * class.c (mono_class_is_assignable_from): Disallow
17843         type parameter -> interface.
17844
17845 2005-04-21  Dick Porter  <dick@ximian.com>
17846
17847         * threads.c (mono_thread_create): Turn an assertion into an error.
17848
17849 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
17850
17851         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
17852         
17853         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
17854         Fix some gcc 4.0 warnings.
17855
17856 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
17857
17858         * file-io.c: fix alt dir separator char on unix systems
17859         and cleanup (fixes bug #71214).
17860
17861 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
17862
17863         * marshal.c: Use CALLVIRT instead of CALL when dispatching
17864         a call to a remote domain, since the method may be an
17865         interface method in the client domain. This fixes bug #74192.
17866
17867 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17868
17869         * threadpool.c: recv/send are now performed before going back to managed
17870         code to save one transition.
17871
17872 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17873
17874         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
17875
17876         * metadata/threadpool.c: removed hack to workaround the bug above.
17877
17878         Fixes bug #74618.
17879
17880 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
17881
17882         * reflection.c reflection.h: Fix handling of parameter defaults in
17883         dynamic methods. Also fixes handling of parameter attributes.
17884         Fixes #74609.
17885
17886         * mono-debug.c (mono_debug_close_image): Fix warning.
17887
17888 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17889
17890         * socket-io.h: replaced old unused field with new 'blocking'.
17891         * threadpool.c: restore socket blocking state on windows(tm).
17892
17893 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
17894
17895         * icall.c: don't return the codebase in the AssemblyName[] returned by
17896         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
17897         * object-internals.h: Removed FIXME (fields were presents) and fixed
17898         versioncompat declaration.
17899
17900 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17901
17902         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
17903         not closed, so don't cleanup when it happens.
17904
17905 2005-04-13  Chris Toshok  <toshok@ximian.com>
17906
17907         * mono-debug-debugger.h: change prototype for
17908         mono_debugger_lookup_type.
17909
17910         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
17911         this function, although it should probably be named
17912         mono_debugger_init_type.
17913
17914 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17915
17916         * threadpool.c: fix non-AIO case.
17917
17918 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
17919
17920         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
17921         the built-in profiler to measure just JIT compilation times.
17922
17923 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17924
17925         * threadpool.c: the epollfd might be closed by another thread at
17926         any time, so ignore EBADF at treat it as a "we're closing" sign.
17927
17928 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17929
17930         * threadpool.c: release the semaphores with a count equals to the number
17931         of working threads in both IO and regular pools. Fixed typo that messed
17932         up the count of IO pool threads. Don't initialize the pipe handles if
17933         we're using epoll.
17934
17935 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17936
17937         * threadpool.c: some systems don't like a NULL when deleting the socket
17938         from epoll.
17939
17940 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17941
17942         * threadpool.c: fix semaphore allocation.
17943
17944 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17945
17946         * threadpool.c: added epoll() based implementation for asynchronous IO
17947         that is used instead of the default poll() when available.
17948         It can be disabled by setting MONO_DISABLE_AIO.
17949
17950 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17951
17952         * threadpool.c: windows needs 'closesocket' and instead of returning
17953         0 when the stream is closed while in select, it returns -1. Fixes bug
17954         #74573.
17955
17956 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
17957
17958         * class.c (class_compute_field_layout): Fix the regression caused by
17959         the previous try.
17960
17961 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17962
17963         * threadpool.c: separate pool for socket async. IO.
17964         * threadpool.h: mono_max_worker_threads is not a global any more.
17965
17966 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
17967
17968         * class.c (class_compute_field_layout): Fix #74549.
17969
17970 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17971
17972         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
17973         use 2 connected sockets instead.
17974
17975 2005-04-08  Miguel de Icaza  <miguel@novell.com>
17976
17977         * mono-config.c: Add new entry point for mkbundle
17978         mono_config_parse_memory. 
17979
17980 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17981
17982         * threadpool.c: removed another unused function.
17983
17984 2005-04-08  Ankit Jain  <radical@corewars.org>
17985
17986         * reflection.c (get_default_param_value_blobs): Add 'types'
17987         parameter to get the types encoded in the constant table.
17988         (mono_param_get_objects): Use the type from the constant table,
17989         not the type of the parameter, when creating default values.
17990         Handle null default values correctly.
17991
17992 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17993
17994         * file-io.c:
17995         * file-io.h:
17996         * threadpool.c:
17997         * threadpool.h:
17998         * icall.c:
17999         * socket-io.c: removed dead code for async IO.
18000
18001 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18002
18003         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
18004
18005         * threadpool.c: intercept socket async. calls and pass them to a thread
18006         that is polling and dispatching the job items to the threadpool as
18007         socket become ready. Fixes bugs #71217, #71933.
18008
18009         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
18010         between char and short/ushort arrays.
18011
18012         * socket-io.c: remove dead code.
18013
18014 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
18015
18016         * locales.c,
18017           icall.c : removed InternalToUpper_Comp() and
18018           InternalToLower_Comp().
18019
18020 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
18021
18022         * char-conversions.h : The tables were incorrectly generated. Should
18023           be generated against invariant culture.
18024
18025 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
18026
18027         * object.c (mono_runtime_invoke_array): Fix return value when 
18028         passing pre-created valuetype objects to ctors.
18029
18030         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
18031         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
18032         Fixes #74338.
18033
18034 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
18035
18036         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
18037         only used with --security and hides the wrong corlib version error.
18038
18039 2005-03-30  Joshua Tauberer  <tauberer@for.net>
18040
18041         * class.c: Changed mono_class_name_from_token so that types
18042         outside of a namespace don't have an initial period.  Improved
18043         the g_warning message used in _mono_class_get when loading
18044         fails.
18045         * assembly.c: In mono_assembly_load_reference, when an assembly
18046         can't be found, "No such file or directory" is misleading and
18047         unhelpful because a few paths were checked for the presence of
18048         the assembly.  When that happens (ENOENT), display a nicer
18049         message indicating the directories that were searched.  In all
18050         cases, the warning is made easier to read for non-hackers.
18051
18052 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
18053
18054         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
18055         project/solution.
18056         * appdomain.h|domain.c: Removed inline from functions.
18057         * appdomain.c: Reduced warnings when compiling on windows.
18058         * icall.c: Fixed output_debug declaration to gunichar2*.
18059         * mono-config.c: Reduced warnings when compiling on windows.
18060         * rand.c: Added missing "windows.h". Added missing return value.
18061         * rawbuffer.c: Added missing winsock2.h for windows.
18062         * sysmath.h: Added mono-compiler.h header to allow/ease 
18063         compilation with non-GCC compilers.
18064         * threads.c: Fixed declarations to compile with VS.NET C compiler.
18065         Removed cast warnings.
18066
18067         Adapted from the work of J Lothian (for VC6).
18068
18069 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
18070
18071         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
18072         from default_path.
18073
18074 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
18075
18076         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
18077         the 2.0 profile.
18078
18079 2005-03-27  Raja R Harinath  <harinath@gmail.com>
18080
18081         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
18082         has to be in $(exec_prefix).  $(prefix) is for arch-independent
18083         stuff, and it would probably use $(prefix)/share rather than
18084         $(prefix)/lib.
18085
18086 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18087
18088         * console-io.c: added 2 includes that might be missing.
18089
18090 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
18091
18092         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
18093         profile.
18094
18095         * reflection.c (create_custom_attr): Allocate the params array using
18096         alloca so it gets GC tracking.
18097
18098 2005-03-23  Chris Toshok  <toshok@ximian.com>
18099
18100         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
18101         out some spew.
18102
18103 2005-03-24  Raja R Harinath  <rharinath@novell.com>
18104
18105         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
18106         changes to pick up any changes in prefix, etc.
18107
18108 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
18109
18110         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
18111         
18112         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
18113         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
18114
18115 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
18116
18117         * class-internals.h object-internals.h class.c reflection.c: Extend the
18118         mono_lookup_dynamic_token () function to return the class of the
18119         token as well. 
18120
18121         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
18122         well. Fixes #73848.
18123
18124 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
18125
18126         * security-manager.c: Skip inheritance checks for intra-corlib
18127         class inheritance and method overrides. This skips a lot of checks
18128         and (anyway) permissions cannot work until corlib is loaded.
18129
18130 2005-03-23  Martin Baulig  <martin@ximian.com>
18131
18132         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
18133         MONO_TYPE_GENERICINST.  
18134
18135 2005-03-23  Martin Baulig  <martin@ximian.com>
18136
18137         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
18138
18139 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
18140
18141         * class.c: added locking comments to some functions.
18142         Cache the interface offsets arrays (saves about 20 KB
18143         of runtime memory in a typical app).
18144         Reduce the time overhead in mono_class_setup_supertypes ().
18145
18146 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
18147
18148         * icall.c: speedup and fix leaks in GetMethodsByName and
18149         GetPropertiesByName.
18150
18151 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
18152
18153         * reflection.c: some locking fixes.
18154
18155 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
18156
18157         * metadata.c: added missing break in case statement.
18158
18159 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
18160
18161         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
18162         typedbyref return values. Fixes #73941.
18163
18164 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
18165
18166         * security-manager.c|h: Added demandunmanaged method and 
18167         suppressunmanagedcodesecurity class to MonoSecurityManager.
18168         Renamed aptc class to allowpartiallytrustedcallers.
18169
18170 2005-03-17  Martin Baulig  <martin@ximian.com>
18171
18172         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
18173
18174 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18175
18176         * file-io.c: disabled file async. IO using aio_*. It uses the
18177         threadpool now. Workaround for bug #73718.
18178
18179 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
18180
18181         * assembly.h, mono-config.c: added code to deal with bundled configs
18182         for bundled assemblies.
18183
18184 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
18185
18186         * *.c, private.h: cleanup, removing old private.h header file.
18187
18188 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
18189
18190         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
18191         and throw_on_unmappable_char attributes.
18192
18193 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
18194
18195         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
18196         _ProcessName_internal.
18197
18198 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
18199
18200         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
18201         #73631.
18202
18203         * icall.c threads.c threads-types.h: Remove slothash icalls as they
18204         are no longer used.
18205
18206 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
18207
18208         * object.c (compute_class_bitmap): Add support for generics. Fixes
18209         #73527.
18210
18211 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
18212
18213         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
18214
18215 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18216
18217         * filewatcher.c: commented out the code for windows watcher, as we don't
18218         use it (we use the managed implementation instead).
18219
18220 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
18221
18222         * object-internals.h (MonoThread): Remove 'unused1' field.
18223
18224         * appdomain.c: Bump corlib version.
18225
18226         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
18227
18228         * reflection.c (mono_reflection_create_runtime_class): Remove the
18229         AssemblyBuilder.Save optimization since it causes too many problems.
18230
18231 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
18232
18233         * exception.c|h: Added mono_get_exception_reflection_type_load to
18234         create a ReflectionTypeLoadException object.
18235         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
18236         to return NULL is a InheritanceDemand fails during reflection. Updated
18237         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
18238         ReflectionTypeLoadException if an InheritanceDemand fails during 
18239         reflection. Added icall mapping for GetLinkDemandSecurity.
18240         * security-manager.c|h: Added ves_icall_System_Security_
18241         SecurityManager_GetLinkDemandSecurity internal call to return the
18242         class and methods permissions set for a LinkDemand. Removed unused
18243         fields in MonoSecurityManager.
18244
18245 2005-03-10  Martin Baulig  <martin@ximian.com>
18246
18247         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
18248         it's a generic instance.
18249
18250 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
18251
18252         * reflection.c (mono_get_object_from_blob): Applied patch from
18253         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
18254
18255         * class.c (mono_class_is_assignable_from): Another try at fixing 
18256         #73469 without breaking anything.
18257
18258 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
18259
18260         * class.c: (mono_class_is_assignable_from): Revert the last changes
18261         since they don't work with generics.
18262         
18263         * class.c (mono_class_is_assignable_from): Fix build bustage.
18264
18265         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
18266         the managed IsAssignableFrom method. Fixes #73469.
18267
18268         * reflection.c (mono_reflection_call_is_assignable_from): New helper
18269         function.
18270
18271 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
18272
18273         * object.c (mono_load_remote_field_new): Fix returning uninitialized
18274         memory when the remoting callback does not sets the out arguments.
18275         Fixes #73007.
18276
18277         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
18278         by mistake.
18279
18280         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
18281
18282         * object-internals.h (MonoStackFrame): Sync with managed object layout.
18283
18284         * appdomain.c: Bump corlib version.
18285
18286 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
18287
18288         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
18289         function.
18290
18291         * threads.c (mono_thread_attach): Detect threads which are not started
18292         by the GC pthread wrappers.
18293
18294 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
18295
18296         * icall.c: Added new icall for RNG.
18297         * rand.c|h: Added new icall to open the RNG. This allows to share a 
18298         single handle on Linux to access /dev/urandom and fix #73183.
18299
18300 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
18301
18302         * object.c: setting the new vtable in a transparent proxy object must
18303         not change the GC descriptor.
18304
18305 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
18306
18307         * object.c: fixed compilation without GCJ support.
18308         * reflection.c: for runtime-created types ensure klass->has_references
18309         is correct (bug #73215).
18310
18311 2005-03-02  Martin Baulig  <martin@ximian.com>
18312
18313         * class.c (mono_class_is_assignable_from): Make this work if
18314         `oklass' is a generic instance; fixes #72831.
18315
18316 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
18317
18318         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
18319         with hasthis set.
18320         
18321         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
18322
18323         * marshal.c: Reorganize native->managed marshalling code to also use
18324         the emit_marshal_... functions.
18325
18326 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
18327
18328         * object.c: typed allocs have issues with bitmap sizes > 30,
18329         so check for max_set >= 30.
18330
18331 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
18332
18333         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
18334         managed code. Fixes #73012.
18335
18336         * metadata.h (MonoMarshalSpec): Add elem_mult field.
18337
18338         * metadata.c reflection.c: Load/Emit elem_mult as well.
18339         
18340         * metadata.h (MonoMarshalSpec): Add comment.
18341
18342         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
18343
18344         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
18345         num_elem to -1 if not given.
18346
18347         * object-internals.h (MonoReflectionMarshal): Add has_size field.
18348
18349         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
18350         given values.
18351
18352 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
18353
18354         * null-gc.c (mono_gc_free_fixed): Was not compilable.
18355
18356 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
18357
18358         * reflection.c (encode_marshal_blob): Encode param_num field as well.
18359
18360         * object-internals.h (MonoReflectionMarshal): Add param_num field.
18361
18362 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
18363
18364         * object.c: generalized the reference bitmap creation
18365         and added hooks for the new GC.
18366         * class-internals.c: removed the gc_bitmap field from MonoClass.
18367
18368 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
18369
18370         * domain.c: help the compiler to produce better code
18371         in mono_jit_info_table_find ().
18372
18373 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
18374
18375         * object.c: make all allocations look typed.
18376
18377 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
18378
18379         * socket-io.c: load Mono.Posix if it's not loaded already
18380         (fixes bug#73033).
18381
18382 2005-02-24  Martin Baulig  <martin@ximian.com>
18383
18384         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
18385         * reflection.c (dup_type): Likewise.
18386
18387 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
18388
18389         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
18390         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
18391
18392 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
18393
18394         * domain.c, threads.c, object-internals.h: make the critical thread
18395         local vars use the fast access mode (even when we're compiled in
18396         a lib). Provide accessors to be used by the jit during codegen.
18397
18398 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
18399
18400         * appdomain.c: Changed hook functios behavior to include
18401         support for the reflection only assemblies. Some icalls were changed
18402         to support the mentioned assemblies too. Signatures of static methods
18403         try_assembly_resolve and real_load now have an additional parameter:
18404         refonly.
18405
18406         * assembly.c: General changes to mono_assembly_ methods to support
18407         reflection only api. Functions mono_assembly_open, mono_assembly_load,
18408         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
18409         suffix, to support an additional gbool parameter to specify whether
18410         the assembli is reflection only or not. Created some new hook functions 
18411         to add support for reflection only assemblies. Signatures of static 
18412         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
18413         have now an additional parameter: refonly.
18414
18415         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
18416         indicating whether the assembly is reflection only or not.
18417
18418         * exception.c: Add mono_get_exception_invalid_operation.
18419
18420         * icall.c: Throw an InvalidOperationException when trying to invoke
18421         a property/method/event, or trying to set/get the value of a field.
18422         Also add an icall to retrieve the ref_only flag to the
18423         MonoReflectionAssembly.
18424
18425 2005-02-23  Chris Toshok  <toshok@ximian.com>
18426
18427         Part of fix for #72827.
18428         * mono-debug.c (mono_debug_add_method): add lexical block data to
18429         the info we write.  Kind of a hack at the moment - we copy the
18430         lexical block info from the MonoDebugMethodInfo to the
18431         MonoDebugMethodJitInfo here, before writing it.
18432         (mono_debug_read_method): read the lexical block info.
18433
18434         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
18435
18436         * debug-mono-symfile.h: add lexical block support.
18437
18438         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
18439         support.
18440
18441 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
18442
18443         * loader.c (mono_lookup_pinvoke_call): Fix warning.
18444
18445         * object.c (mono_runtime_free_method): Call mono_free_method () and
18446         put the TODOs there.
18447
18448         * loader.c (mono_free_method): Free up most memory allocated for 
18449         dynamic methods.
18450
18451 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
18452
18453         * reflection.c: properly flag a Type argument to a
18454         named custom attr value (bug #72248).
18455
18456 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
18457
18458         * reflection.c: reduce code duplication in named custom
18459         attribute encoding.
18460
18461 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
18462
18463         * reflection.c: properly encode custom attrs of type object
18464         (bug #72649).
18465
18466 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
18467
18468         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
18469
18470 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
18471
18472         * socket-io.c: load System.dll if it's not loaded already
18473         (bug #72850 and #70477).
18474
18475 2005-02-21  Martin Baulig  <martin@ximian.com>
18476
18477         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
18478         generic instances.
18479
18480 2005-02-21  Martin Baulig  <martin@ximian.com>
18481
18482         * reflection.c (mono_image_build_metadata): We also need to
18483         "fixup" the MethodImpl table after we computed the final method
18484         indices.  Call fixup_methodimpl() to do that.
18485         (fixup_methodimpl): New private method.
18486
18487 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
18488
18489         * assembly.c: special case mscorlib.dll (bug#72536),
18490         patch from Carlos Alberto Cortez.
18491
18492 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
18493
18494         * threads-types.h threads.c: Fix build bustage.
18495
18496         * threads.c: Use a union for long<->double conversions.
18497
18498         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
18499         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
18500
18501         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
18502         containing the checkpoint call with NOT_TAKEN.
18503         
18504         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
18505         checkpoint before pushing the arguments, so they won't have to be
18506         spilled to stack.
18507
18508 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
18509
18510         * domain.c, assembly.c, domain-internals.h: make some data
18511         const and relocation-free.
18512
18513 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
18514
18515         * object.c, appdomain.c, class-internals.h: introduce the
18516         MonoClassRuntimeInfo structure to hold the info needed to
18517         use a class at runtime. Made mono_class_vtable() lock-free
18518         for all the appdomains.
18519
18520 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
18521
18522         * metadata-internals.h, image.c: introduce a per-image mempool to
18523         be used for memory that has the same lifetime as the image.
18524
18525 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
18526
18527         * domain.c: In mono_init_internal(), instead of selecting the first
18528         runtime version supported by an executable, get a list of all
18529         supported versions and select the one for which an mscorlib exists
18530         (since even if the runtime supports a given version, it doesn't mean
18531         that the framework for that version is installed).
18532         Modified get_runtimes_from_exe to support this behavior.
18533         In supported_runtimes, added information about additional system
18534         assembly versions.
18535         
18536         * assembly.c: Added support for more than one system assembly version
18537         per runtime version. Updated the assembly list.
18538         In mono_assembly_remap_version, removed the initial version check,
18539         since we don't know to which version we need to compare until we
18540         get the version set on which the assembly is based.
18541         Moved the code for loading corlib into the new method
18542         mono_assembly_load_corlib(), so it can be used by the initialization
18543         code.
18544         
18545         * domain-internals.h: Updated data structures and added declaration
18546         for mono_assembly_load_corlib.
18547
18548 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
18549
18550         * reflection.c (resolve_object): Fix the creation of the signature in 
18551         the SignatureHelper case.
18552
18553         * assembly.c (mono_assembly_remap_version): Fix binary search.
18554         
18555 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
18556  
18557         * class.c: Added inheritance check when a method is overloaded (from a
18558         virtual method or when implementing an interface) and when a class is
18559         inherited. Added functions to set a failure for a class and to 
18560         retreive the exception from a failure.
18561         * class-internals.h: Added fields to MonoClass to keep the exception
18562         information status for inheritance (or other exceptions) to be thrown
18563         later (i.e. not at load time).
18564         * object.c: Throw the inheritance SecurityException when a type is to 
18565         be created with either class or method inheritance violations.
18566         * reflection.c|h: Fix when getting declsec from a class. Removed 
18567         unrequired code for class. Improved sanity in parameter naming.
18568         * security-manager.c|h: Added functions to check for class and method
18569         inheritance.
18570
18571 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
18572
18573         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
18574         and has_finalize in dynamic types as well.
18575
18576 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
18577
18578         * culture-info-table.h : fixed currency format for en-GB (and so on).
18579
18580 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
18581
18582         * gc.c: ensure the GC handles never have 0 as a value.
18583
18584 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
18585
18586         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
18587         a pointer to a struct to unmanaged code. Fixes #72625.
18588
18589 2005-02-16  Martin Baulig  <martin@ximian.com>
18590
18591         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
18592
18593 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
18594
18595         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
18596
18597 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
18598
18599         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
18600
18601         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
18602         UnmanagedFunctionPointerAttribute, use it for determining calling convention
18603         etc. Fixes #71471.
18604
18605         * reflection.c (mono_custom_attrs_get_attr): New helper function.
18606
18607         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
18608
18609 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
18610
18611         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
18612         changes to make the current context a field in MonoThread.
18613
18614 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
18615
18616         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
18617         the last change.
18618         
18619         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
18620         extracted from mono_marshal_get_native_wrapper.
18621
18622         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
18623         to create wrappers around native functions.
18624
18625         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
18626         delegates for arbitrary function pointers. Fixes #71472.
18627
18628 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
18629
18630         * threads.c: cleaned up the code a little.
18631
18632 2005-02-15  Martin Baulig  <martin@ximian.com>
18633
18634         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
18635         the data table.
18636
18637         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
18638         allocate larger chunks if needed.
18639
18640 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
18641
18642         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
18643         in by mistake.
18644
18645 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
18646
18647         * domain.c: keep the domains in an array and ensure the domain ids
18648         are kept small, so they can be used as indexes to domain-specific data
18649         with a small memory overhead.
18650
18651 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
18652
18653         * icall.c: Handle byref types in Type icalls. Fixes #72544.
18654
18655 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
18656
18657         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
18658
18659 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
18660
18661         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
18662
18663         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
18664         values.
18665
18666         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
18667         
18668 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
18669
18670         * domain-internals.h: add the hashtable here.
18671
18672         * class-internals.h: Remove `info' from MonoMethod
18673
18674         * domain.c: Add a new hashtable, jit_trampoline_hash
18675
18676 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
18677
18678         * object.c: don't set the value of static fields
18679         (fixes bug#72494).
18680
18681 2005-02-11  Martin Baulig  <martin@ximian.com>
18682
18683         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
18684         (mono_debug_add_method): Silently ignore the method if it's too big.
18685         (mono_debug_add_type): Likewise.
18686
18687 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
18688
18689         * threads.c, appdomain.c: remove #ifdefs from the code.
18690
18691 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
18692
18693         * metadata-internals.h: Added flags to MonoAssembly to cache the most
18694         common security informations. This allows us to stay in unmanaged code
18695         when doing LinkDemand and it's special cases (except for the first 
18696         time for initialization). The flags a very much used with --security.
18697         * reflection.c|h: Added code to get declarative security attributes 
18698         for LinkDemand and InheritanceDemand. This required to refactor the
18699         existing code for Demand.
18700         * security-manager.c|h: Added new method fields for the special cases
18701         of LinkDemand.
18702
18703 2005-02-10  Martin Baulig  <martin@ximian.com>
18704
18705         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
18706         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
18707
18708 2005-02-10  Martin Baulig  <martin@ximian.com>
18709
18710         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
18711         debugging code; this is almost a complete rewrite.
18712
18713         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
18714
18715 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
18716
18717         * domain.c, object.h: expose mono_string_equal () and 
18718         mono_string_hash ().
18719         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
18720         it's implemented in managed code.
18721
18722 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
18723
18724         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
18725         lo leak objects between appdomains.
18726
18727 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
18728
18729         * assembly.c: old compilers compilation fix from 
18730         robertj@gmx.net (Robert Jordan).
18731
18732 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
18733
18734         * class-internals.h: Little reminder for the future.
18735
18736         * debug-helpers.c: Fix up wrapper_type_names
18737
18738 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
18739
18740         * image.c, metadata-internals.h: when loading an image from a file,
18741         mmap all of it and use the same codepaths as when using a
18742         in-memory image: the code is simpler and we use less memory
18743         (both writable and readonly).
18744
18745 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
18746
18747         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
18748         API to alloc runtime data structures that need to be tracked by the
18749         GC and contain pointers.
18750         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
18751         make the code more readable and eventually use a different GC.
18752
18753 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
18754
18755         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
18756         for out arguments.
18757         
18758 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
18759
18760         * object.c: In release_type_locks(), don't release the cctor lock
18761         if it has already been released. This fixes a crash in the
18762         thread5 test.
18763
18764 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
18765
18766         * gc.c, marshal.c, icall.c: register a delegate for finalization
18767         only when the native function pointer has been allocated for it.
18768
18769 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
18770
18771         * object.c: cleaned up some code, allocate objects that are
18772         pointer free with the atomic malloc variant. Allocate memory
18773         for static data from the mempool if it's pointer-free.
18774         Allocate the bounds array at the end of the array data, when needed.
18775         * object-internals.h, object.h: move a private function in a private
18776         header.
18777         * class.c: handle missing case in tracking references in fields.
18778
18779 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
18780
18781         * class.c, class-internals.h: keep track if a type has
18782         reference fields in either the instance or static fields.
18783
18784 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
18785
18786         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
18787         and renamed to MonoRuntimeInfo. Added fields to store the expected
18788         framework assembly version. Changed mono_get_framework_version and
18789         mono_get_runtime_version for a single mono_get_runtime_info method.
18790         
18791         * assembly.c: Added method to remap system assembly versions to the
18792         current executing runtime version. Removed old mapping code.
18793         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
18794         
18795         * icall.c, reflection.c: Track api changes.
18796
18797 2005-02-06  Miguel de Icaza  <miguel@novell.com>
18798
18799         * loader.c (method_from_memberref): Improve error reporting,
18800         produce the class name instead of the typeref/typedef index. 
18801
18802 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
18803
18804         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
18805
18806 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
18807
18808         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
18809         stdcall and charset name mangling.  Reorganize the code and add
18810         some tracing stuff.
18811
18812 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
18813
18814         * monodiet.c: More iters!
18815
18816         * marshal.c: Iter usage.
18817
18818         * icall.c: Iter usage.
18819
18820         * object.c: Use iters.
18821
18822         * debug-helpers.c: More iters
18823
18824 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
18825
18826         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
18827         under win32.
18828
18829 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
18830
18831         * mono-debug-debugger.c: use iters
18832
18833         * class.c, class-internals.h: mono_class_setup_events is static
18834         now
18835
18836         * All callers: use iters
18837
18838 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
18839
18840         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
18841         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
18842
18843 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
18844
18845         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
18846
18847         * marshal.h: Add prototypes for ldfld/stfld_remote.
18848
18849         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
18850         this is called during startup.
18851         
18852 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
18853
18854         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
18855         MonoThreadsSync struct private in monitor.c. Changed the way
18856         MonoThreadsSync is allocated so it's faster and there is no
18857         need to keep track of it with a finalizer and it uses less memory.
18858         This also finally allows us to allocate mono objects as ptrfree when
18859         there are no reference fields.
18860
18861 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
18862
18863         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
18864         disappearing link to the GC interface and use them to simplify
18865         the gchandles code.
18866
18867 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
18868
18869         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
18870         stfld_remote which call mono_load/store_field_new. This allows methods
18871         calling ldfld/stfld wrappers to be AOTed.
18872
18873         * console-io.c: Include sys/filio.h under solaris.
18874         
18875         * console-io.c: Include curses.h if needed correctly.
18876
18877 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
18878         
18879         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
18880         method->klass as well.
18881
18882         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
18883
18884         * class.c (mono_class_init): Switch on lazy initialization of 
18885         methods.
18886
18887         * class.c (mono_class_get_finalizer): Handle the case when the 
18888         finalizer is inherited.
18889
18890 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18891
18892         * console-io.c: <curses.h> is needed by term.h on solaris.
18893
18894 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
18895
18896         * icall.c, class-internals.h, monodiet.c, class.c: Remove
18897         mono_class_setup_properties where possible. Remove this ftn from
18898         the header file, and make it static.
18899
18900 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
18901
18902         * loader.c: Add missing setup_... call.
18903
18904         * class.c: Add missing setup_... calls.
18905
18906         * class.c (mono_class_init): Switch on lazy initialization of 
18907         the generic vtable.
18908         
18909         * class.c (mono_class_init): Fix generics broken by the recent changes.
18910
18911         * monodiet.c (handle_type): Add missing setup_... calls.
18912
18913         * class.c: Back out garbage in previous patch.
18914         
18915         * class.c: Add missing setup_... calls.
18916
18917         * class.c (mono_class_get_method_from_name_flags): Avoid calling
18918         mono_class_setup_methods () if possible.
18919
18920         * class-internals.h (MonoClass): Add 'has_cctor' flag.
18921
18922         * class-internals.h (MonoCachedClassInfo): New structure.
18923
18924         * class.c: Initialize properties and events fields of MonoClass lazily.
18925
18926         * class.c: Add infrastructure for lazily initializing the methods and
18927         vtable fields of MonoClass. Not yet used.
18928
18929         * class.c (mono_class_get_finalizer): New helper function.
18930
18931         * class.c: Add infrastructure for loading some class related data from
18932         an AOT file.
18933
18934         * object.c: Add infrastructure for initializing the vtable from data
18935         in the AOT file.
18936
18937         * gc.c (run_finalize): Use mono_class_get_finalizer ().
18938
18939         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
18940         appropriate initialization function before accessing parts of the
18941         MonoClass structure.
18942
18943         * marshal.c: Fix warnings.
18944         
18945         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
18946
18947         * mono-debug-debugger.c (get_exception_message): Use 
18948         mono_class_get_method_from_name_flags ().
18949
18950 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
18951
18952         * reflection.c, appdomain.c: Replace a few manual searches that
18953         Zoltan missed. (Paolo approved this part of my initial patch).
18954
18955 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
18956
18957         * profiler.c: disable recording statistical events at report time.
18958
18959 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
18960
18961         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
18962         to byteswap arrays of enum values, too (bug #72080).
18963
18964 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
18965
18966         * appdomain.c (set_domain_search_path): Allow this to be called if
18967         domain->setup is not yet set.
18968
18969         * loader.c (mono_method_get_index): New helper function.
18970
18971         * loader.c reflection.c: Use mono_method_get_index ().
18972
18973         * class.c (mono_class_get_method_from_name_flags): New helper method.
18974
18975         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
18976         this.
18977
18978         * class.c (mono_class_get_cctor): New helper method.
18979
18980         * string-icalls.c object.c class.c marshal.c reflection.c: Use
18981         mono_class_get_method () to look up methods.
18982
18983 2005-02-01  Miguel de Icaza  <miguel@novell.com>
18984
18985         * console-io.c: Fix the build, this should work on Windows.
18986
18987 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
18988
18989         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
18990         be set to null to keep things valid
18991
18992 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18993
18994         * icall.c: added Console 2.0 icalls.
18995         * Makefile.am: added console-io.[ch]
18996         * console-io.[ch]: internal calls for Console 2.0 API.
18997
18998 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
18999
19000         * class.c: make sure we consider all the interfaces
19001         when calculating max_interface_id (bug found by
19002         Jeroen Frijters running ikvm).
19003
19004 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
19005
19006         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
19007         valuetype fields to null.
19008
19009         * object.c (set_value): Ditto. Fixes #71669.    
19010
19011 2005-01-31  Martin Baulig  <martin@ximian.com>
19012
19013         * metadata.c (mono_metadata_has_generic_params): New public
19014         function; checks whether something is a generic method.
19015
19016 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
19017
19018         * appdomain.c: fix infinite recursion when adding assemblies.
19019
19020 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
19021
19022         * object.c: Fix small typo to return all items for Environment.
19023         GetCommandLineArgs.
19024
19025 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
19026
19027         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
19028         reflection.c: more domain and assembly-unload related fixes
19029         and memory leaks plugs.
19030
19031 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
19032
19033         * class.c loader.c security.c loader.h process.c threads.c mono-debug-debugger.c profiler.c marshal.c rand.cpedump.c: Fix 64 bit warnings.
19034
19035 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
19036
19037         * loader.c (mono_method_signature): Make this method lazy
19038         (mono_get_method_from_token): Don't computate the signature here.
19039
19040         Doing this saves quite a bit of memory. I got 90 kb on starting up
19041         monodoc. It should also save some disk reads on startup.
19042
19043         * *: MonoMethod->signature might be NULL now. You *MUST* use
19044         mono_method_signature.
19045
19046 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
19047
19048         * object.c (mono_runtime_get_main_args): Return an array from the
19049         current domain here. Fixes #71938.
19050
19051 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
19052
19053         * monitor.c: formatting changes to comply with the
19054         mono coding style and remove #ifdefs from the code.
19055
19056 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
19057
19058         * metadata.c, private.h: remove some unneeded data
19059         and use a more compact representation for table schemas.
19060
19061 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
19062
19063         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
19064         to get a better distribution in hash tables.
19065         * *.c: use mono_aligned_addr_hash() where appropriate.
19066         * assembly.c: make var static.
19067
19068 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
19069
19070         * domain-internals.h: Put MonoJitInfo on a diet.
19071
19072         * domain.c: Fix a warning.
19073
19074 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
19075
19076         * gc.c: rework the gc handles code to reuse handles
19077         when freed.
19078
19079 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
19080
19081         * domain.c: fixed long standing bug in mono_string_equal() which
19082         was brought to light with the ldstr changes.
19083
19084 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
19085
19086         * reflection.c: Remove warning by adding missing include for marshal.h
19087
19088 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
19089
19090         * domain.c, object.c: change the ldstr_table to hold
19091         MonoString* as keys: makes the runtime isinterned lookup
19092         faster and simplifies memory management.
19093
19094 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
19095  
19096         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
19097         possible to add imperative security checks before calling the icall.
19098         * reflection.c: Return security attributes on the original MonoMethod
19099         (and not the wrapped one). This fix permissions on icalls.
19100
19101 2005-01-25  Dick Porter  <dick@ximian.com>
19102
19103         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
19104         the check for mktime() support actually test the mktime() return
19105         value.  "Fixes" bug 71682, though the output is still different to
19106         MS.
19107
19108 2005-01-25  Martin Baulig  <martin@ximian.com>
19109
19110         * class.c (mono_class_is_assignable_from): Make this work for
19111         generic instances.
19112
19113 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
19114
19115         * marshal.c (mono_string_utf8_to_builder)
19116         (mono_string_builder_to_utf16): We might not have ownership of the
19117         string. In thise case, we need to create a new buffer.
19118
19119         * object-internals.h (mono_stringbuilder_capacity): sb->str might
19120         be null, in which case, use the default capacity.
19121
19122 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
19123
19124         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
19125         GC events to the profiler.
19126
19127 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
19128
19129         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
19130         if you don't want the GC to run.
19131
19132 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
19133
19134         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
19135         start providing a GC API and keeping different implementations in
19136         their own file.
19137         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
19138
19139 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
19140
19141         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
19142         mmap rather than allocating a huge buffer.
19143         (mono_debug_close_mono_symbol_file): Free the buffer allocated
19144         above.
19145
19146 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
19147
19148         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
19149         and CheckExecutionRights.
19150         * reflection.c|h: Keep the index of the declarative security to be 
19151         used, instead of the pointer, when AOT compiler is used. Also add 
19152         class initialization when requesting demands.
19153         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
19154         CheckExecutionRights. Both properties are now FALSE by default, and
19155         unmodifiable, unless the --security option is used.
19156
19157 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
19158
19159         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
19160         reflection.c: properly refcount images and assemblies, many leaks fixed.
19161
19162 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19163
19164         * threadpool.c: increase the timeout for threads in the thread pool to
19165         10s.  Fixes bug #67159.
19166
19167 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
19168
19169         * class-internals.h: Sun's compiler insists on explicit
19170         signed on bit fields to handle then correctly.
19171
19172 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
19173
19174         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
19175         Make the size of the array fit only the number of invalid path
19176         chars that we have.
19177
19178         * class.c (_mono_class_get): Improve the error reporting when a
19179         class referenced is not found, to assist debugging. 
19180
19181 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
19182
19183         * threads.c: fix off-by-one error.
19184         * domain.c: free data allocated in the domain.
19185
19186 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
19187
19188         * reflection.c (mono_method_body_get_object): Fill out exception info
19189         as well.
19190
19191         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
19192         structure.
19193         
19194 2005-01-19  Martin Baulig  <martin@ximian.com>
19195
19196         * loader.c (mono_get_method_constrained): Make this work again.
19197
19198 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
19199
19200         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
19201         guint16 to match the managed side.
19202
19203         * reflection.c (mono_reflection_body_get_object): Fill out local
19204         variables array.
19205
19206         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
19207         as well.
19208
19209         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
19210         'local_var_sig_token'.
19211
19212 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
19213
19214         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
19215         System.Drawing.
19216
19217         * reflection.c (mono_method_body_get_object): Handle abstract and
19218         runtime methods.
19219
19220 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
19221
19222         * marshal.c, loader.c, class-internals.h, reflection.c:
19223         store the emthod data for a wrapper in an array instead of a list.
19224
19225 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
19226
19227         * marshal.c: change the code to allocate memory more
19228         conservatively for method wrappers.
19229
19230 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
19231
19232         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
19233         fields from MonoClass to the marshal info structure where they belong.
19234
19235 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
19236
19237         * class.c, object.c, class-internals.h, marshal.c: rearrange
19238         some fields and tweak some types to lower memory usage.
19239
19240 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
19241
19242         * threads.c (signal_thread_state_change): Handle the case when the
19243         target thread is the current thread.
19244
19245         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
19246
19247         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
19248         emit_ptr_to_object_conv. 
19249
19250         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
19251         marshalling. Fixes #71352.
19252
19253 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
19254
19255         * metadata.h, blob.h: move table enum to blob.h so it can be included
19256         in any header.
19257         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
19258         cut the size of MonoImage/MonoDynamicImage.
19259
19260 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
19261
19262         * profiler.c (mono_profiler_install_simple): Fix default arguments.
19263
19264 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
19265
19266         * reflection.c, reflection.h, icall.c: add a function to check
19267         if an attribute type is defined for a metadata object.
19268
19269 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
19270
19271         * object-internals.h: Added some needed fields from StringBuilder class.
19272         * marshal.c: Set the maxCapacity when creating a StringBuilder.
19273
19274 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
19275
19276         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
19277         threads before shutting down the runtime.
19278
19279         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
19280
19281 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
19282
19283         * object-internal.h, threads.c: implement stacksize and 
19284         parameterized thread start functionality (requires
19285         matching corlib). Marked broken code for later removal.
19286
19287 2005-01-12  Martin Baulig  <martin@ximian.com>
19288
19289         * class-internals.h (MonoGenericClass): Moved the `initialized'
19290         flag to MonoDynamicGenericClass, removed `init_pending'.
19291         (MonoGenericInst): Added `is_reference' flag.
19292
19293 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
19294
19295         * reflection.c (mono_image_create_pefile): Only set the pe_offset
19296         inside the MSDOS header. Fixes #71201.
19297
19298         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
19299         gc thread.
19300         (mono_domain_finalize): Ditto.
19301
19302 2005-01-12  Martin Baulig  <martin@ximian.com>
19303
19304         * class.c (mono_get_shared_generic_class): Use the cache for
19305         non-dynamic generic classes.
19306
19307         * class-internals.h (mono_class_create_generic_2): Removed
19308         function prototype, this function is now static inside class.c.
19309
19310         * class.c (mono_class_create_generic_2): Made this static, only
19311         call it from mono_class_init() and mono_class_setup_parent().
19312         (collect_implemented_interfaces_aux): Call mono_class_init() on
19313         the interfaces we collect.
19314         (mono_class_setup_vtable): Call mono_class_init (class->parent).
19315
19316 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
19317
19318         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
19319         it a real thread handle.
19320
19321         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
19322         MonoJitExceptionInfo, since each catch clause needs its own variable.
19323         
19324 2005-01-11  Dick Porter  <dick@ximian.com>
19325
19326         * image.c (mono_pe_file_open): New variant on mono_image_open()
19327         that does not set up the CLI metadata; used for FileVersionInfo so
19328         it can get the data for windows binaries too.
19329         
19330         * process.c (process_read_string_block): Don't read off the end of
19331         the StringTable block.
19332
19333         These both fix bug 70766.
19334
19335 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
19336
19337         * gc.c: set some fields to NULL at GC cleanup time.
19338         * threads.c: if we quit the main thread, call exit ().
19339
19340 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
19341
19342         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
19343
19344 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
19345
19346         * threads.h, threads.c, object.c: added accessor and settor for
19347         main_thread. Handle it specially when exiting from it: wait
19348         for other foreground threads to exit.
19349
19350 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
19351
19352         * process.c, verify.c: remove some bloat.
19353
19354 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
19355
19356         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
19357         the calling convention to cdecl under win32.
19358
19359 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
19360
19361         * object.c (mono_object_get_size): New function to get the size of
19362         an object instance.
19363
19364         * profiler.c (simple_allocation): Use above.
19365
19366 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
19367
19368         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
19369         ves_icall_System_AppDomain_getRootDomain (as it's not required to
19370         get an appdomain by it's id and we can't assume the root's id is 0).
19371         * domain-internals.h: Change the function prototype to match.
19372         * icall.c: Change the icall table for AppDomain.
19373
19374 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
19375
19376         * locales.c (string_invariant_compare_char): Only compute
19377         GUnicodeTypes in the case where we need them.  Test for ordinality
19378         first and return if so.
19379
19380         From the commit:
19381
19382                 /*
19383                  * FIXME: here we must use the information from c1type and c2type
19384                  * to find out the proper collation, even on the InvariantCulture, the
19385                  * sorting is not done by computing the unicode values, but their
19386                  * actual sort order.
19387                  */
19388
19389 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
19390
19391         * loader.c: for P/Invoke methods, allow the "Internal" shared
19392         library name to refer to the calling process symbol namespace.
19393
19394 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
19395
19396         * Makefile.am: Add the security manager to the build.
19397         * security-manager.c|h: New. Initialization of the security manager.
19398
19399 2005-01-07  Dick Porter  <dick@ximian.com>
19400
19401         * threads.c: 
19402         * monitor.c: Update thread state during Monitor and WaitHandle
19403         waits.  Fixes bug 71031.
19404
19405 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
19406
19407         * reflection.c (property_encode_signature): Correctly handle when the
19408         property has no methods.
19409
19410 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
19411
19412         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
19413         
19414         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
19415         fields from mb, not rmb. Fixes #71017.
19416
19417         * marshal.c (emit_ptr_to_str_conv): Add support for 
19418         ByValTStr -> string conversion. Fixes #71015.
19419
19420         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
19421
19422         * mempool.c (mono_mempool_contains_addr): New helper function.
19423
19424 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
19425
19426         * metadata.c (mono_metadata_compute_size): Fix size calculation of
19427         HasSematics encoded fields.
19428         
19429         * metadata.c (mono_type_to_unmanaged): Improve error message for 
19430         invalid string marshalling.
19431
19432         * metadata.c: Fix warnings.
19433         
19434 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
19435
19436         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
19437         profiler support.
19438
19439 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
19440
19441         * domain.c object.c domain-internals.h: Revert part of r38077 since the
19442         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
19443         tests.
19444
19445 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
19446
19447         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
19448         so methods containing these can be AOTed.
19449
19450 2005-01-03  Martin Baulig  <martin@ximian.com>
19451
19452         * loader.c (find_method): Removed the hack for generic instances.
19453         (method_from_memberref): If our parent is a generic instance, pass
19454         its generic type definition to find_method() and then inflate the
19455         method.
19456         (mono_get_method_constrained): Pass the generic type definition to
19457         find_method() and inflate the method later.
19458
19459         * class-internals.h (MonoStats): Added `generic_class_count'.
19460
19461         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
19462         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
19463
19464         * reflection.c (mono_custom_attrs_from_params): Don't ignore
19465         generic type definitions.
19466
19467 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
19468
19469         * loader.c icall.c: Fix warnings.
19470
19471 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
19472
19473         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
19474         blittable types. Fixes #70864.
19475
19476 2004-12-29  Martin Baulig  <martin@ximian.com>
19477
19478         * icall.c
19479         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
19480
19481         * reflection.c (mono_method_get_object): Create a
19482         "System.Reflection.MonoGenericMethod" for inflated methods; don't
19483         call mono_get_inflated_method().
19484
19485         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
19486
19487 2004-12-27  Martin Baulig  <martin@ximian.com>
19488
19489         * class-internals.h (MonoMethod): Added `is_inflated' flag.
19490         (MonoMethodInflated): Added `inflated' field.
19491
19492         * class.c (mono_class_inflate_generic_method): Don't really
19493         inflate the method here; just set the `is_inflated' flag in the
19494         MonoMethod.
19495         (mono_class_get_inflated_method): Actually inflate the method here
19496         if it's not already inflated; we use the MonoMethodInflated's new
19497         `inflated' field as a cache.
19498
19499 2004-12-26  Martin Baulig  <martin@ximian.com>
19500
19501         * class.c
19502         (inflate_generic_class): Moved some code out of inflate_generic_type().
19503         (mono_class_inflate_generic_method): If we're already inflated,
19504         inflate the context and use the declaring method; ie. make sure
19505         the declaring method of an inflated method is always the generic
19506         method definition.
19507         (mono_class_create_from_typedef): Create
19508         `class->generic_container->context->gclass'.
19509
19510 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
19511
19512         * metadata-internals.h, marshal.c, reflection.c: More
19513         MonoGHashTable->GHashTable.
19514
19515         * domain-internals.h, class.c: Change MonoGHashTable's into
19516         GHashTables for some cases where no gc stuff is used
19517
19518         All users: update apis
19519
19520 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
19521
19522         * metadata.c (builtin_types): Make this `const'. Makes this get
19523         put into the shareable section.
19524         (mono_metadata_init): Casts to make gcc happy.
19525
19526 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
19527
19528         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
19529
19530 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
19531
19532         * icall.c: Added an internal call to retrieve the position and length
19533         of assembly-level declarative security attributes (RequestMinimum, 
19534         RequestOptional and RequestRefuse). This is used by the Assembly class
19535         to re-create the corresponding permission sets.
19536
19537 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
19538
19539         * marshal.c: fix the stelemref wrapper to be type correct
19540         (and faster).
19541
19542 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
19543
19544         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
19545         to do key & 0x7fffffff. Hashtable already does this. It just
19546         results in longer code.
19547
19548 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
19549
19550         * appdomain.c: Bump corlib version.
19551         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
19552         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
19553         * reflection.c|h: Add functions to get declarative security infos
19554         (blob position and length) for assemblies, classes and methods.
19555
19556 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
19557
19558         * reflection.c: sort the constant table (bug #70693).
19559
19560 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
19561
19562         * object-internals.h, threads.c, domain.c: add accessors for
19563         the MonoThread and MonoDomain tls keys.
19564
19565 2004-12-18  Martin Baulig  <martin@ximian.com>
19566
19567         * class.c (inflate_generic_type): If we're inflating a generic
19568         instance, set `ngclass->context->container = context->container';
19569         ie. the container we inflated into.
19570
19571         * metadata.c (mono_metadata_parse_generic_param): Reflect above
19572         inflate_generic_type() changes.
19573
19574 2004-12-17  Martin Baulig  <martin@ximian.com>
19575
19576         * class-internals.h
19577         (MonoGenericClass): Replaced `MonoType *generic_type' with
19578         `MonoClass *generic_class'.  Removed `dynamic_info'; if
19579         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
19580         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
19581
19582 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
19583
19584         * exception.c (mono_exception_from_token): New helper function.
19585
19586 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
19587
19588         * assembly.c (mono_assembly_load_with_partial_name): Call 
19589         mono_assembly_loaded before invoking the preload hooks. Fixes
19590         #70564.
19591
19592         * object-internals.h (MonoThread): Change culture_info and 
19593         ui_culture_info into an array.
19594
19595         * threads.c: Cache culture info objects from more than one appdomain.
19596
19597         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
19598         current UI culture.
19599
19600 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
19601
19602         * threads.h threads.c appdomain.c: Clear the culture_info field of
19603         all threads during unloading if they point to an object in the dying
19604         appdomain.
19605
19606 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
19607
19608         * culture-info.h (TextInfoEntry): New struct
19609         * object-internals.h: sync with managed
19610         * locales.c: fill the `text_info_data' field
19611         * culture-info-tables.h: update
19612
19613 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
19614
19615         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
19616         collector.
19617
19618 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
19619
19620         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
19621         (ves_icall_ModuleBuilder_getMethodToken): Ditto
19622
19623 2004-12-12  Martin Baulig  <martin@ximian.com>
19624
19625         * mono-debug-debugger.c (write_type): If we're an enum and the
19626         builtin types have already been initialized, call mono_class_init().
19627
19628 2004-12-11  Martin Baulig  <martin@ximian.com>
19629
19630         * metadata.c (mono_metadata_load_generic_params): Added
19631         `MonoGenericContainer *parent_container' argument; automatically
19632         compute `container->is_method'; pass the correct owner to
19633         get_constraints().      
19634
19635         * reflection.c (compare_genericparam): Sort the GenericParam table
19636         according to increasing owners. 
19637
19638 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
19639
19640         * profiler.c: allow disabling the default profiler.
19641
19642 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
19643
19644         * decimal.c, icall.c: allow disabling System.Decimal support.
19645
19646 2004-12-09  Marek Safar <marek.safar@seznam.cz>
19647
19648         * reflection.c: Add support for null attribute arguments.
19649
19650 2004-12-09  Martin Baulig  <martin@ximian.com>
19651
19652         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
19653         names to get rid of compiler warnings.
19654
19655 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
19656
19657         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
19658         mono_marshal_load_type_info (). Fixes #69625.
19659         (mono_marshal_get_ptr_to_struct): Likewise.
19660
19661 2004-12-08  Martin Baulig  <martin@ximian.com>
19662
19663         * mono-debug.h: Bumped version number to 47.
19664
19665         * mono-debug-debugger.c
19666         (mono_debugger_event_handler, mono_debugger_event): Take two
19667         guint64 arguments insteed of a gpointer and a guint32.  
19668
19669 2004-12-08  Martin Baulig  <martin@ximian.com>
19670
19671         * debug-mono-symfile.h
19672         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
19673         `address' to `native_offset'.
19674
19675 2004-12-08  Martin Baulig  <martin@ximian.com>
19676
19677         * class.c (mono_class_create_from_typespec): Only inflate if we
19678         either have `context->gclass' or `context->gmethod'.
19679
19680 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
19681
19682         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
19683
19684         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
19685
19686         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
19687
19688         * reflection.c (mono_assembly_get_object): Remove the workaround put
19689         in for the release.
19690         
19691         * appdomain.c: Use the corlib_internal field from MonoAssembly.
19692
19693         * appdomain.c: Bump corlib version.
19694
19695         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
19696         be visible in other appdomains.
19697
19698 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
19699
19700         * threads.c: Interlocked inc and dec for longs were messed up,
19701         use a KISS based impl for this. Fixes 70234
19702
19703 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
19704
19705         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
19706
19707 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
19708
19709         * icall.c: fix to follow policy not to allow struct
19710         arguments in icalls.
19711
19712 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19713
19714         * process.c: make the patch that handles spaces in file paths work
19715         on mono/windows too.
19716
19717 2004-12-06  Martin Baulig  <martin@ximian.com>
19718
19719         * class.c (mono_class_create_generic): Call
19720         mono_class_setup_supertypes() if we're dynamic.
19721         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
19722
19723 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
19724
19725         * object-internals.h: Add new fields to MonoThread.
19726
19727         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
19728
19729         * icall.c threads-types.h threads.c: Add new icalls.
19730
19731         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
19732
19733         * object-internals.h (MonoReflectionAssembly): Sync object layout with
19734         managed side.
19735
19736         * appdomain.c: Bump corlib version.
19737
19738         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
19739         internal assemblies. Fixes #69181.
19740
19741 2004-12-05  Martin Baulig  <martin@ximian.com>
19742
19743         * class.c (mono_class_inflate_generic_signature): Make this a
19744         no-op if `context' is NULL or we don't have any type parameters;
19745         also copy `sentinelpos'.        
19746
19747 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
19748
19749         * image.c: Add unbox_wrapper_cache.
19750
19751         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
19752
19753         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
19754         function generator.
19755         
19756         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
19757         Fixes #70173.
19758
19759         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
19760         
19761 2004-12-04  Martin Baulig  <martin@ximian.com>
19762
19763         * loader.c (mono_method_get_signature_full): New public function;
19764         like mono_method_get_signature(), but with an additional
19765         `MonoGenericContext *' argument.
19766
19767         * class.c (mono_class_inflate_generic_signature): Formerly known
19768         as inflate_generic_signature(); make this public.
19769
19770 2004-12-04  Martin Baulig  <martin@ximian.com>
19771
19772         * metadata.c
19773         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
19774         instead of a `MonoGenericContainer *'.  
19775         (mono_metadata_parse_array_full): Likewise.
19776         (mono_metadata_parse_signature_full): Likewise.
19777         (mono_metadata_parse_method_signature_full): Likewise.
19778         (mono_metadata_parse_generic_inst): Likewise.
19779         (mono_metadata_parse_generic_param): Likewise.
19780         (mono_metadata_parse_mh_full): Likewise.
19781         (mono_type_create_from_typespec_full): Likewise.
19782
19783 2004-12-03  Martin Baulig  <martin@ximian.com>
19784
19785         * class-internals.h (MonoGenericContainer): Replaced the
19786         `MonoGenericContext * pointer with a `MonoGenericContext'
19787         structure and made it the first element.
19788
19789 2004-12-03  Martin Baulig  <martin@ximian.com>
19790
19791         * class.c
19792         (inflate_generic_type): Set the `context->container' when creating
19793         a new MonoGenericContext.
19794         (mono_class_inflate_generic_method): Likewise.
19795         (mono_class_create_from_typespec): Just use `context->container'
19796         to get the container.
19797
19798         * loader.c (method_from_methodspec): Set `context->parent' from
19799         `context->container' - and if that's a method container, use its
19800         parent.  Also set the `context->container' when creating a new
19801         MonoGenericContext.
19802         (mono_get_method_from_token): Use just `context->container' to get
19803         the container.
19804
19805         * metadata.c (do_mono_metadata_parse_generic_class): Also set
19806         `gclass->context->container'.
19807
19808         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
19809         the `context->container' when creating a new MonoGenericContext.
19810
19811 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
19812
19813         * reflection.c (compare_genericparam): Sort params with identical
19814         owner by their number. Fixes gen-111 on sparc.
19815
19816 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
19817
19818         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
19819         around the domain changes.
19820
19821         * appdomain.c (mono_domain_unload): Handle the case when the thread
19822         calling Unload is itself being aborted during unloading. Fixes #70022.
19823
19824         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
19825
19826         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
19827         checkpoint_func as an icall so it gets a wrapper.
19828         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
19829         in the cross-appdomain wrappers too.
19830
19831         * threads.c (mono_thread_has_appdomain_ref): Make this public.
19832
19833         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
19834
19835         * reflection.c: Fix some memory leaks.
19836         
19837 2004-12-02  Martin Baulig  <martin@ximian.com>
19838
19839         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
19840
19841         * metadata.c (generic_class_cache): New static hashtable.
19842         (mono_metadata_lookup_generic_class): New public method.
19843
19844 2004-12-02  Martin Baulig  <martin@ximian.com>
19845
19846         * class.c (mono_class_create_from_typedef): Call
19847         mono_class_setup_parent() and mono_class_create_mono_type() before
19848         parsing the interfaces.
19849
19850 2004-12-02  Martin Baulig  <martin@ximian.com>
19851
19852         * metadata.c (generic_inst_cache): New static hashtable.
19853         (mono_metadata_lookup_generic_inst): New public function.
19854         (mono_metadata_inflate_generic_inst): New public function.
19855         (mono_metadata_parse_generic_inst): New public function.
19856         (do_mono_metadata_parse_generic_class): Use the new
19857         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
19858         since this'll also use the cache.
19859
19860         * reflection.c (mono_reflection_bind_generic_method_parameters):
19861         Use mono_metadata_lookup_generic_inst() to use the new cache.
19862
19863         * class.c (inflate_mono_type): Use
19864         mono_metadata_inflate_generic_inst() to inflate a generic
19865         instance; this'll also use the new cache.
19866
19867         * loader.c (method_from_methodspec): Use
19868         mono_metadata_parse_generic_inst() and
19869         mono_metadata_inflate_generic_inst() rather than parsing it
19870         manually, so we can use the new cache.
19871
19872 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
19873
19874         * threads.c (wait_for_tids): Do not incorrectly free threads when 
19875         the wait times out.
19876
19877 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
19878
19879         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
19880         iter->args based on whether parameters are passed in registers (i.e.
19881         MONO_ARCH_REGPARMS is defined)
19882
19883 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
19884
19885         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
19886         the exception message. Fixes #70070.
19887         (method_from_methodspec): Fix warnings.
19888
19889 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19890
19891         * process.c: (complete_path) return the path quoted
19892
19893 2004-12-01  Martin Baulig  <martin@ximian.com>
19894
19895         * class-internals.h (MonoGenericInst): New structure.
19896         (MonoGenericClass): Replaced `type_argc', `type_argv' and
19897         `is_open' with `MonoGenericInst *inst'.
19898         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
19899         `is_open' with `MonoGenericInst *inst'.
19900
19901 2004-11-30  Martin Baulig  <martin@ximian.com>
19902
19903         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
19904
19905         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
19906         to `generic_class_cache'.
19907
19908         * metadata.c
19909         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
19910         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
19911         (mono_generic_inst_is_valuetype): Renamed to
19912         mono_generic_class_is_valuetype().
19913
19914         * class-internals.h
19915         (MonoGenericInst): Renamed to MonoGenericClass.
19916         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
19917         (MonoClass): Renamed `generic_inst' to `generic_class'.
19918         (MonoGenericContext): Renamed `ginst' to `gclass'.
19919
19920         * object-internals.h
19921         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
19922
19923         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
19924         mono_reflection_generic_class_initialize().
19925
19926         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
19927         now known as "System.Reflection.MonoGenericClass".
19928         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
19929
19930 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
19931
19932         * class-internals.h: Added a flag field to MonoClass to cache the
19933         declarative security attributes actions associated with the class.
19934         * domain-internals.h: Added booleans to MonoJitInfo to cache the
19935         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
19936         applicable to the JITted method.
19937         * reflection.c|h: Added functions to extract (as flags) which security
19938         actions are available (declaratively) for a method, class or assembly.
19939         * metadata.c|h: Added functions to search the declarative security
19940         table in the metadata.
19941         
19942 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
19943
19944         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
19945         EXPORTEDTYPES are already in the class name cache, so there is no
19946         need to add extra code here to look at them. Just removes a bit of
19947         cruft.
19948
19949         (ves_icall_System_Environment_get_TickCount): No need for #if
19950         WINDOWS. We already have the code in io-layer.
19951
19952 2004-11-28  Martin Baulig  <martin@ximian.com>
19953
19954         * loader.c
19955         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
19956         Fixes gen-112.cs.
19957
19958 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
19959
19960         * assembly.c (do_mono_assembly_open): Instead of having a
19961         conditional WITH_BUNDLE, incorporate support for bundles here, by
19962         having a global `bundles' variable holding a pointer to the actual
19963         bundles. 
19964
19965         (mono_register_bundled_assemblies): New API call used by the
19966         bundle code. 
19967
19968         See mkbundle.1 for details.
19969         
19970 2004-11-27  Martin Baulig  <martin@ximian.com>
19971
19972         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
19973         the vtable for generic methods.
19974
19975 2004-11-26  Martin Baulig  <martin@ximian.com>
19976
19977         * metadata.c
19978         (mono_metadata_generic_method_hash): New public function.
19979         (mono_metadata_generic_method_equal): Likewise.
19980
19981         * class-internals.h
19982         (MonoGenericContainer): Added `GHashTable *method_hash'.
19983
19984         * reflection.c (ReflectionMethodBuilder): Added
19985         `MonoGenericContainer *generic_container'.
19986         (reflection_methodbuilder_to_mono_method): Don't create a new
19987         MonoGenericContainer each time we're called.
19988         (mono_reflection_bind_generic_method_parameters): Use
19989         `container->method_hash' to cache the results so we don't create a
19990         different method if we're called several times with the same
19991         arguments.
19992
19993         * loader.c (method_from_methodspec): Use the new
19994         `container->method_hash' here, too.
19995
19996 2004-11-26  Martin Baulig  <martin@ximian.com>
19997
19998         * class.c (inflate_generic_signature): Correctly compute
19999         `res->has_type_parameters'.
20000         (mono_class_vtable): Use the `has_type_parameters' flag to
20001         determine whether we're a generic method.
20002
20003         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
20004
20005 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
20006
20007         * object.c (mono_runtime_run_main): Fix a small memory leak.
20008
20009 2004-11-25  Martin Baulig  <martin@ximian.com>
20010
20011         * class.c (set_generic_param_owner): Fixed the loop.
20012
20013 2004-11-25  Martin Baulig  <martin@ximian.com>
20014
20015         * object.c (mono_class_vtable): Don't create any JIT wrappers for
20016         generic methods.
20017
20018 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
20019
20020         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
20021         names. Fixes #69787.
20022
20023 2004-11-24  Martin Baulig  <martin@ximian.com>
20024
20025         * class.c (mono_class_create_generic_2): If we don't have a
20026         `ginst->parent', inflate `gklass->parent' to get our parent.
20027
20028 2004-11-24  Martin Baulig  <martin@ximian.com>
20029
20030         * reflection.c (compare_genericparam): Correctly sort the
20031         GenericParam table; fixes #69779.
20032
20033 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
20034
20035         * reflection.c: When writing a PE file, don't create a huge
20036         buffer in memory. Just write the arrays we have to the file.
20037         This reduces memory usage.
20038
20039         * metadata-internals.h: MonoDynamicStream pefile is no longer used
20040         globally.
20041
20042 2004-11-17  Martin Baulig  <martin@ximian.com>
20043
20044         * class.c (mono_class_init): Don't setup `class->parent' for
20045         dynamic instances; moved this to mono_class_generic_2().
20046         (mono_class_create_generic): Also set `klass->inited' for dynamic
20047         generic instances.
20048         (mono_class_create_generic_2): Don't do anything for dynamic
20049         generic instances.  Set `klass->parent' here and also call
20050         mono_class_setup_parent() here. 
20051
20052         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
20053         `MonoType *parent' argument; set `ginst->parent' before calling
20054         mono_class_create_generic_2(), so we set the correct parent.
20055
20056 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
20057
20058         * reflection.c: allow getting attributes from ModuleBuilder
20059         (used by ikvm).
20060
20061 2004-11-17  Martin Baulig  <martin@ximian.com>
20062
20063         * class.c (mono_class_create_from_typedef): If a type parameter is
20064         inherited from an outer class, set its owner to that class.
20065
20066 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
20067
20068         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
20069           for (int*) written size. This fixes bug #69592.
20070
20071 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
20072
20073         * icall.c: Added IsAuthenticodePresnet internal call.
20074         * image.c|h: New function that check a MonoImage for an Authenticode
20075         signature in the certificate PE data directory.
20076         * security.c|h: New internal call to ask the runtime if an 
20077         Authenticode signature seems referenced in the PE header.
20078
20079 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
20080
20081         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
20082
20083         * reflection.c (mono_image_create_pefile): Free the assembly streams
20084         after writing out the assembly file.
20085
20086         * object.c (mono_runtime_run_main): Fix small memory leak.
20087
20088         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
20089         property access modifiers. Fixes #69389.
20090
20091 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
20092
20093         * domain.c, object.c, object-internals.h, domain-internals.h,
20094         object.h, marshal.c: keep dynamic code info per domain.
20095
20096 2004-11-15  Martin Baulig  <martin@ximian.com>
20097
20098         * class.c (mono_type_get_name_recurse): Put type arguments in
20099         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
20100         see bug #68387.
20101
20102 2004-11-15  Martin Baulig  <martin@ximian.com>
20103
20104         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
20105         (mono_class_setup_vtable): When computing `the_cname' for a
20106         generic instance, don't include the namespace since we'd otherwise
20107         add it twice.
20108
20109 2004-11-15  Martin Baulig  <martin@ximian.com>
20110
20111         * class.c (mono_class_create_generic): Changed return type to void.
20112         (mono_class_create_generic_2): New public function; setup
20113         `class->method', `class->field' and `class->interfaces' here
20114         instead of in mono_class_init().
20115
20116         * class.h (mono_class_create_generic): Moved to class-internals.h.
20117
20118 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
20119
20120         * reflection.c (mono_image_create_pefile): take a file HANDLE.
20121         rather than writing to memory, write to this file. Right now,
20122         we are just writting into a buffer, and copying that. However
20123         we can avoid the buffer later.
20124
20125         (mono_dynamic_stream_reset): new function
20126
20127         * icall.c, object-internals.h: update for the above.
20128
20129 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
20130
20131         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
20132         have been using gc'd memory. First it is slower, unlikely
20133         the comment in the source code said, secondly, it increases
20134         our footprint to do it in the gc.
20135
20136         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
20137         the method so that it does not have to copy to managed code.
20138
20139 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
20140
20141         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
20142
20143 2004-11-12  Martin Baulig  <martin@localhost>
20144
20145         * reflection.c (mono_image_create_token): Allow generic method
20146         definitions here, since they may appear in an `.override'; see
20147         gen-98/gen-99 for an example.
20148
20149 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
20150
20151         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
20152         #69365.
20153
20154         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
20155         descriptive.
20156
20157 2004-11-11  Martin Baulig  <martin@ximian.com>
20158
20159         * class.c (mono_class_setup_vtable): In an explicit interface
20160         implementation, the method name now includes the arity.
20161
20162 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
20163
20164         * object.c (mono_array_full_copy): Fix warning.
20165
20166 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
20167
20168         * appdomain.c: Removed look_for_method_by_name(). Use the new method
20169         mono_class_get_method_from_name() instead.
20170         
20171         * class-internals.h: Added two new types of wrappers. 
20172         Added MonoRemotingTarget enum. Added new trampoline function type, which
20173         takes an additional MonoRemotingTarget value as parameter, so it is
20174         possible to request a trampoline for a specific target.
20175         
20176         * class.c: Added new mono_class_get_method_from_name() method.
20177         
20178         * class.h: In MonoRemoteClass, we can have now to vtables, one for
20179         general remoting sinks and one specific for cross domain calls.
20180         
20181         * debug-helpers.c: Added new wrapper names.
20182         
20183         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
20184         of a remote class.
20185         
20186         * image.c: Porperly delete value objects form the remoting invoke hashtable.
20187         
20188         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
20189         with several other methods (mono_marshal_get_xappdomain_dispatch,
20190         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
20191         and others) can generate a fast remoting wrapper for cross domain calls.
20192         More information can be found in docs/remoting.
20193         Other changes: Removed mono_find_method_by_name, and used
20194         mono_class_get_method_from_name instead.
20195         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
20196         is stored in the remoting invoke hashtable.
20197         
20198         * marshal.h: published the new method for getting the xdomain wrapper,
20199         and also added a method for getting the adequate wrapper for a given
20200         method and target.
20201         
20202         * object-internals.h, object.c: Added a couple of methods for capying and
20203         cloning arrays.
20204         Modified mono_install_remoting_trampoline, which takes the new remoting
20205         trampoline that has a remoting target as parameter.
20206         mono_class_proxy_vtable now also takes a remoting target as parameter, and
20207         will return the most suitable vtable for the target.
20208         Added mono_remote_class_vtable, which returns the vtable of a remote class
20209         (which can be the normal remoting vtable or the xdomain vtable).
20210         
20211         * threads.c: the xdomain invoke and dispatch wrappers must also be
20212         protected against interruptions.
20213
20214 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20215
20216         * icall.c: use memmove in BlockCopyInternal when the source and
20217         destination arrays are the same.
20218
20219 2004-11-09  Martin Baulig  <martin@ximian.com>
20220
20221         * class-internals.h (MonoGenericContainer): Removed `method' and
20222         `signature', replaced them with `is_method' and `is_signature'
20223         flags.  Added `context'.
20224
20225         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
20226         instead of a `MonoGenericContainer *'.
20227
20228         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
20229         for dynamic type parameters.
20230         (mono_metadata_load_generic_params): Setup `container->context'.
20231
20232         * reflection.c (mono_reflection_setup_generic_class): Setup
20233         `tb->generic_container->context'.
20234         (do_mono_reflection_bind_generic_parameters): Use
20235         mono_class_inflate_generic_type() to correctly inflate types,
20236         rather than using our own hack just for MONO_TYPE_VAR.
20237
20238 2004-11-09  Martin Baulig  <martin@ximian.com>
20239
20240         * class.c (mono_class_inflate_generic_method): Small fix; don't
20241         crash here.
20242
20243         * icall.c
20244         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
20245         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
20246         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
20247         (ves_icall_Type_BindGenericParameters): Likewise.
20248         (ves_icall_Type_get_IsGenericInstance): Likewise.
20249         (ves_icall_Type_GetGenericParameterPosition): Likewise.
20250         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
20251         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
20252         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
20253
20254 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
20255
20256         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
20257         assembly versions and public key tokens. Fixes #69113.
20258
20259 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
20260
20261         * metadata.c: fix bug introduced with the type cache changes
20262         on 2004-11-06.
20263
20264 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
20265
20266         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
20267         the MonoClass pointer instead of the token in exception clauses.
20268         * reflection.c: updates for the above and make the code not depend
20269         on the structure of MonoExceptionClause.
20270
20271 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
20272
20273         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
20274         Add support for dynamic assemblies. Fixes #69114.
20275
20276         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
20277
20278 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
20279
20280         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
20281         since most only those methods use it. the code member of
20282         MonoMethodPInvoke was dead, so that can be removed too. Also,
20283         remove inline_count (again, not used), and move slot so that it
20284         can share bits with some other flags. This saves 8 bytes in the
20285         structure and gives us about 50 kb back for mcs helloworld.cs
20286
20287         * *.[ch]: Do naming changes for the above.
20288
20289         * loader.c (mono_method_get_header): Lazily init the header
20290         on first access.
20291         (mono_get_method_from_token): don't init the header here
20292         (mono_free_method): the header may never be allocated
20293
20294         Overall, this saves 150 kb of unmanaged allocations
20295         for mcs helloworld.cs. That accounts for 10% of the unmanaged
20296         memory at runtime.
20297         
20298         * loader.c, loader.h (mono_method_get_header): new accessor.
20299
20300         * *.[ch]: use the above method. Prepares us to lazily load
20301         the header.
20302
20303         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
20304         three warnings, which are actual bugs (see 69206).
20305
20306         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
20307         unused. Saves a cool 4 bytes / method.
20308
20309 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
20310
20311         * metadata.c (builtin_types): Add types for System.Object here.
20312         (mono_metadata_parse_type_full): Cache MonoType*'s that are
20313         for a class or valuetype from klass->this_arg or klass->byval_arg.
20314
20315         On mcs for a hello world, this gets us down from 21836 MonoType's
20316         to 14560.
20317
20318         (mono_metadata_free_type): Account for the above change.
20319
20320 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
20321
20322         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
20323         exception instead of asserting if name is null.
20324         (ves_icall_System_AppDomain_GetData): Ditto.
20325
20326 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
20327
20328         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
20329         EnumBuilder.
20330
20331         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
20332         Return NULL when the domain does not have entry_assembly set.
20333
20334         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
20335         Add a 'resource_modules' argument.
20336         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
20337
20338         * reflection.c (mono_reflection_create_runtime_class): Move setting
20339         of wastypebuilder here, so mono_get_type_object () returns a MonoType
20340         for enums too.
20341
20342         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
20343         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
20344         Throw an ArgumentNullException if 'ptr' is null.
20345
20346         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
20347         assemblies here. Fixes #69020.
20348
20349 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
20350
20351         * reflection.c (build_compressed_metadata): Fix the previous patch for
20352         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
20353         the stack.
20354
20355 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
20356
20357         * assembly.c (mono_assembly_names_equal): Allow a match if one of
20358         the cultures is false. Fixes #69090.
20359
20360         * reflection.c (build_compressed_metadata): Fix invalid memory read 
20361         detected by valgrind.
20362         
20363         * reflection.c (mono_reflection_get_type): Avoid triggering a 
20364         TypeResolve multiple times for the same type. Fixes #65577.
20365
20366 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
20367
20368         * marshal.c: Avoid using ldftn to call managed functions. It is
20369         much slower than just a call.
20370
20371         * reflection.c (mono_module_get_object): free the basename we
20372         allocate here from glib.
20373         
20374         * reflection.c (ensure_runtime_vtable): make sure to free
20375         overrides.  Also, we were allocating an array of MonoMethod not an
20376         array of MonoMethod*.
20377
20378         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
20379
20380         * image.c (mono_image_close): free image->guid here.
20381
20382 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
20383
20384         * reflection.c: Fix some spec conformance issues with the PE file
20385         structures so mcs compiled apps run on the Net 2.0 beta.
20386
20387 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
20388
20389         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
20390         Implement this. Fixes #67264.
20391
20392         * debug-helpers.h debug-helpers.c marshal.c: Move 
20393         mono_find_method_by_name to debug-helpers.c.
20394
20395 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
20396
20397         * object.c (mono_release_type_locks): type_initialization_hash is
20398         a GHashTable.
20399
20400         * reflection.c object.c object-internals.h: Fix warnings.
20401
20402         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
20403         without accessors. Fixes #61561.
20404
20405         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
20406         application base from the root domain if not set. Fixes #65641.
20407         (mono_runtime_init): Fix warning.
20408
20409 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20410
20411         * appdomain.c: call mono_thread_pool_init.
20412         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
20413         of worker threads based on the number of CPUs and the environment
20414         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
20415         for non-windows (windows) systems.
20416
20417 2004-10-27  Chris Toshok  <toshok@ximian.com>
20418
20419         * mono-debug-debugger.c (write_class): don't call mono_class_init
20420         here, as even with the check for (!klass->init_pending), we get
20421         into a situation where we're hitting cycles in class
20422         initialization.  Fixes #68816.
20423
20424 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
20425
20426         * image.c: Avoid overwriting values in the loaded_images_hash when an
20427         assembly is loaded multiple times. Fixes #61152.
20428
20429         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
20430         so multiple satellite assemblies for the same name can be loaded.
20431         Fixes #68259.
20432
20433         * mono_domain_assembly_preload: Actually return the loaded assembly, 
20434         not NULL.
20435
20436         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
20437         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
20438
20439         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
20440         pending finalizers are not invoked after the appdomain has been 
20441         unloaded. Fixes #67862.
20442
20443 2004-10-22  Martin Baulig  <martin@ximian.com>
20444
20445         * mono-debug-debugger.c
20446         (mono_debugger_runtime_invoke): Don't box valuetypes.
20447
20448 2004-10-22  Chris Toshok  <toshok@ximian.com>
20449
20450         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
20451         don't hide private methods.
20452
20453 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
20454
20455         * icall.c: Allows the runtime to "share" (when known) the public key
20456         token of an assembly. This avoid the need to recalculate the token 
20457         (from the public key) in managed code.
20458
20459 2004-10-21  Chris Toshok  <toshok@ximian.com>
20460
20461         * debug-helpers.c (append_class_name): argh, revert last patch.
20462         
20463 2004-10-21  Chris Toshok  <toshok@ximian.com>
20464
20465         * debug-helpers.c (append_class_name): use '+' as the delimiter,
20466         not '/', so that it matches what the debugger uses to look up
20467         methods.
20468
20469 2004-10-21  Martin Baulig  <martin@ximian.com>
20470
20471         * mono-debug-debugger.c (mono_debugger_throw_exception): New
20472         public method; this is called each time an exception is thrown and
20473         allows the debugger to use exception catch points.
20474
20475 2004-10-21  Martin Baulig  <martin@ximian.com>
20476
20477         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
20478         the stack pointer and the exception object in some struct and pass
20479         that to the debugger.
20480
20481 2004-10-21  Chris Toshok  <toshok@ximian.com>
20482
20483         * mono-debug-debugger.c (do_write_class): add instance/static
20484         event support.  We don't expose "raise" or "other" yet.
20485         (event_is_static): new method.
20486
20487 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
20488
20489         * mono-debug-debugger.c
20490         (mono_debugger_handle_exception): Remove
20491         bogus return value for fussy compilers.
20492
20493 2004-10-20  Martin Baulig  <martin@ximian.com>
20494
20495         * mono-debug-debugger.c
20496         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
20497         (mono_debugger_handled_exception): Likewise.
20498
20499 2004-10-20  Martin Baulig  <martin@ximian.com>
20500
20501         * mono-debug-debugger.h (MonoDebuggerEvent): Added
20502         MONO_DEBUGGER_EVENT_EXCEPTION.
20503
20504         * mono-debug-debugger.c (mono_debugger_handle_exception): New
20505         public function to send the debugger a notification for an
20506         exception and inform it about a catch/finally clause.
20507
20508 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
20509
20510         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
20511         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
20512         fix 2.95 build. 
20513
20514         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
20515
20516 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
20517
20518         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
20519         marshalled as [In,Out]. Fixes #58325.
20520
20521 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
20522
20523         * reflection.c (mono_method_body_get_object): Implement some fields.
20524
20525 2004-10-12  Martin Baulig  <martin@ximian.com>
20526
20527         * reflection.c (mono_reflection_bind_generic_parameters): Small
20528         fix, correctly retrieve our parent from a generic instance.
20529
20530 2004-10-12  Martin Baulig  <martin@ximian.com>
20531
20532         * metadata.c (mono_metadata_generic_param_equal): We always have
20533         an owner.
20534
20535         * class.c
20536         (mono_class_from_generic_parameter): We need to have an owner.
20537         (my_mono_class_from_generic_parameter): Likewise.
20538
20539         * reflection.c (mono_reflection_setup_generic_class): Renamed to
20540         mono_reflection_create_generic_class() and added a new
20541         mono_reflection_setup_generic_class().  
20542         (mono_reflection_initialize_generic_param): If we're a nested
20543         generic type and inherited from the containing class, set our
20544         owner to the outer class.
20545
20546 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
20547
20548         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
20549
20550         * reflection.c (mono_method_body_get_object): New function to create
20551         a MethodBody object.
20552
20553         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
20554
20555 2004-10-11  Martin Baulig  <martin@ximian.com>
20556
20557         * metadata.c (_mono_metadata_type_equal): Renamed to
20558         do_mono_metadata_type_equal() and made static.
20559
20560 2004-10-11  Martin Baulig  <martin@ximian.com>
20561
20562         * appdomain.c: Bump corlib version number to 28.
20563
20564 2004-10-10  Martin Baulig  <martin@ximian.com>
20565
20566         * class-internals.h
20567         (MonoGenericInst): Added `MonoGenericContainer *container'.
20568         (MonoGenericMethod): Likewise.
20569         (MonoGenericContext): Likewise.
20570         (MonoGenericParam): Added `MonoGenericContainer *owner'.
20571
20572         * metadata.c
20573         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
20574         (do_mono_metadata_parse_generic_inst): Likewise.
20575         (mono_metadata_parse_type_full): New public method.  This is the actual
20576         mono_metadata_parse_type() implementation - with an additional
20577         `MonoGenericContainer *' argument.
20578         (mono_metadata_parse_array_full): Likewise.
20579         (mono_metadata_parse_signature_full): Likewise.
20580         (mono_metadata_parse_method_signature_full): Likewise.
20581         (mono_metadata_parse_mh_full): Likewise.
20582         (mono_type_create_from_typespec): Likewise.
20583         (mono_metadata_interfaces_from_typedef_full): New public method;
20584         this is similar to the other _full() methods, but we take a
20585         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
20586         (mono_metadata_parse_generic_param): Take an additional
20587         `MonoGenericContainer *' argument and lookup the MonoGenericParam
20588         from that container.
20589         (mono_metadata_generic_param_equal): New static method to compare
20590         two type parameters.
20591         (_mono_metadata_type_equal): New static method; takes an
20592         additional `gboolean signature_only' argument - if true, we don't
20593         compare the owners of generic parameters.
20594         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
20595         with a TRUE argument - do a signature-only comparision.
20596
20597         * loader.c: Use the new _full() methods and pass the
20598         MonoGenericContainer to them.
20599
20600         * object-internals.h (MonoReflectionTypeBuilder): Added
20601         `MonoGenericContainer *generic_container' field.
20602         (MonoReflectionMethodBuilder): Likewise.
20603
20604 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
20605
20606         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
20607         case initial images of dynamic assemblies.
20608
20609         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
20610
20611         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
20612
20613         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
20614         length of event->other array.
20615         (typebuilder_setup_events): Ditto.
20616
20617         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
20618         'assembly_by_name' and add an 'assemblies' list.
20619
20620         * assembly.h assembly.c: Add a new search hook for determining whenever
20621         an assembly is already loaded. Use this instead of searching in the
20622         loaded_assemblies list.
20623
20624         * domain.c appdomain.c: Implement the new search hook so loaded 
20625         assemblies are now scoped by appdomain. Fixes #67727.
20626
20627 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
20628
20629         * threads.c (mono_thread_attach): Initialize synch_lock field so
20630         mono_thread_detach works again.
20631
20632         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
20633         'lib' too. Fixes #63130.
20634
20635 2004-10-06  Jackson Harper  <jackson@ximian.com>
20636
20637         * culture-info-tables.h: regenerated.
20638
20639 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
20640
20641         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
20642         implemented by other interfaces in the result. Fixes #65764.
20643         
20644         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
20645         Handle unloadable modules without crashing.
20646
20647         * image.c (load_modules): Revert the previous patch since modules must
20648         have a fixed index inside the array.
20649         
20650         * image.c (load_modules): Don't include native modules in the modules
20651         array.
20652
20653 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
20654
20655         * reflection.h: Add param_defaults field.
20656
20657         * reflection.c: Add support for parameter defaults in dynamic methods.
20658         Fixes #64595.
20659
20660         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
20661         an empty string when a type has no namespace. Fixes #64230.
20662
20663 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
20664
20665         * tabledefs.h: Added "internal" security actions to support non-CAS
20666         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
20667         Note: they do not seems to be used anymore in 2.0 (new metadata format)
20668
20669 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
20670
20671         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
20672         constructor of abstract class. Fixes #61689.
20673
20674 2004-10-04  Martin Baulig  <martin@ximian.com>
20675
20676         * class-internals.h (MonoGenericContainer): New type.
20677         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
20678         `MonoGenericContainer *generic_container'.
20679         (MonoClass): Replaced `gen_params' and `num_gen_params' with
20680         `MonoGenericContainer *generic_container'.
20681
20682         * metadata.c (mono_metadata_load_generic_params): Return a
20683         `MonoGenericContainer *' instead of a `MonoGenericParam *';
20684         removed the `num' argument.
20685
20686 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
20687
20688         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
20689         for dynamic images.
20690
20691         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
20692         machine fields.
20693
20694         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
20695
20696         * reflection.c: Save pe_kind and machine values into the generated
20697         image file.
20698
20699         * appdomain.c: Bump corlib version number.
20700
20701         * object-internals.h: Reorganize layout of LocalBuilder.
20702
20703         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
20704         New helper function.
20705
20706         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
20707         created MonoType for dynamic types. Fixes #66180.
20708
20709 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
20710
20711         * threadpool.c: the ares hashtable needs a critical section around it.
20712         this prevents some nasty segfaults
20713
20714 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
20715
20716         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
20717         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
20718         bug 67324).
20719         
20720 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
20721
20722         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
20723         
20724 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
20725
20726         * image.c: Always canonicalize image file names, to avoid loading
20727         the same assembly twice when referenced using a relative path.
20728
20729 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
20730
20731         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
20732
20733         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
20734
20735         * marshal.c: Fix warnings.
20736
20737 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
20738
20739         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
20740         attempting to marshal the delegate_trampoline as the method_addr.
20741         This patch has a static hashtable of marshalled delegates so that 
20742         we can map delegate_trampoline addresses back to delegates.  This
20743         allows a delegate passed to managed code to be passed back into native
20744         code.  Fixes #67039
20745
20746 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
20747
20748         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
20749
20750         * reflection.c (method_encode_code): Align method headers properly.
20751         Fixes #66025.
20752
20753 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
20754
20755         * marshal.c: In the runtime invoke wrapper, reset the abort
20756         exception if it is cached. This avoids the automatic rethrowal of 
20757         the exception after the catch of the wrapper. Also check for pending
20758         interruptions before calling the managed method. This is done using
20759         the new method emit_thread_force_interrupt_checkpoint, since the
20760         normal checkpoint method is ignored when running the invoke wrapper.
20761         * object.c: If the abort exception is rethrown, set the abort_exc
20762         field of the thread, so it will be rethrown aftere every catch.
20763         * threadpool.c: Only run an interruption checkpoint if what has been
20764         requested is a stop of the thread (aborts will be ignored).
20765         * threads.c: By default, a thread will now never be interrumped while
20766         running the runtime invoke wrapper (this ensures that runtime_invoke
20767         will always return to the caller if an exception pointer is provided).
20768         There is a new special method mono_thread_force_interruption_checkpoint()
20769         to force an interruption checkpoint even if running a protected
20770         wrapper, which is used by the same runtime invoke wrapper to do a check
20771         at a safe point.
20772
20773 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
20774
20775         * object.c, object-internals.h: Implemented mono_release_type_locks,
20776         which releases the cctor locks held by a thread.
20777         * threads.c, threads.h: In thread_cleanup, release cctor locks held
20778         by a thread. Added mono_thread_exit() method to be used to safely stop
20779         a thread.
20780
20781 2004-09-28  Raja R Harinath  <rharinath@novell.com>
20782
20783         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
20784         Move null check before dereference.  Avoid indexing beyond the end
20785         of the 'modules' array.
20786
20787 2004-09-28  Raja R Harinath  <rharinath@novell.com>
20788
20789         * metadata-internals.h (MonoImage): Add module_count field.
20790         * image.c (load_modules): Set image->module_count.
20791         (mono_image_load_file_for_image): Use image->module_count.
20792         * reflection.c (mono_image_load_module): Append to image->modules array 
20793         of dynamic assembly.
20794         (mono_module_get_object): Fix loop to actually increment index.
20795         Use image->module_count.
20796         * assembly.c (mono_assembly_load_references): Use image->module_count.
20797         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
20798         Likewise.
20799
20800 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
20801
20802         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
20803         Avoid assert on generic types.
20804
20805 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
20806
20807         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
20808
20809         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
20810
20811         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
20812         function to convert a MarshalSpec structure to its managed counterpart.
20813
20814         * reflection.c: Fix warnings.
20815         
20816         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
20817         field.
20818
20819         * icall.c (mono_create_icall_signature): Fix build.
20820
20821 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
20822
20823         * icall.c: Add MakePointType icall.
20824
20825         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
20826         warnings.
20827
20828 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20829
20830         * threadpool.c: reuse allocated slots in the queue.
20831
20832 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
20833
20834         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
20835
20836         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
20837
20838         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
20839         previous change.
20840
20841         * tabledefs.h: Add constants for pinvoke attributes BestFit and
20842         ThrowOnUnmappableChar.
20843
20844         * icall.c (ves_icall_Type_GetPacking): New icall.
20845
20846 2004-09-24  Martin Baulig  <martin@ximian.com>
20847
20848         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
20849
20850 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20851
20852         * appdomain.c:
20853         (mono_domain_set): allow setting a domain that is being unloaded.
20854         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
20855         being unloaded.
20856
20857 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
20858
20859         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
20860         the GetCustomAttributes icall.
20861
20862 2004-09-23  Martin Baulig  <martin@ximian.com>
20863
20864         * object-internals.h (MonoReflectionGenericParam): Replaced
20865         'has_ctor_constraint', `has_reference_type' and `has_value_type'
20866         with `guint32 attrs'.
20867
20868 2004-09-23  Martin Baulig  <martin@ximian.com>
20869
20870         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
20871
20872 2004-09-23  Martin Baulig  <martin@ximian.com>
20873
20874         * object-internals.h (GenericParameterAttributes): New enum.
20875
20876 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
20877
20878         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
20879         
20880         * class.c (init_events): Fill out event->other field.
20881
20882         * class.c: Fix warnings.
20883
20884         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
20885
20886 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
20887
20888         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
20889         walk which doesn't supply the IL offset.
20890
20891 2004-09-22  Martin Baulig  <martin@ximian.com>
20892
20893         * reflection.c (mono_reflection_setup_internal_class): If we're
20894         System.ValueType, System.Object or System.Enum, set
20895         `klass->instance_size' and create the vtable.
20896         (mono_reflection_create_internal_class): If we're an enum type,
20897         get the base class from our current corlib.
20898
20899 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
20900
20901         * reflection.h (MonoResolveTokenError): New type.
20902
20903         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
20904         icall.
20905
20906         * icall.c: Add an 'error' argument to the ResolveToken icalls.
20907
20908 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
20909
20910         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
20911         Support also calling constructors, but only for already allocated objects.
20912
20913 2004-09-17  Geoff Norton <gnorton@customerdna.com>
20914
20915         * reflection.c (type_get_qualified_name): If the klass is null
20916         return the typename to avoid a NullRefEx.
20917         (encode_cattr_value): Get the qualified name of the boxed type,
20918         not the underlying enumtype.  Fixes #62984.
20919
20920 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
20921
20922         * marshal.c: Fix problems with previous checkin.
20923
20924 2004-09-21    <vargaz@freemail.hu>
20925
20926         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
20927         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
20928
20929         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
20930
20931 2004-09-21  Geoff Norton <gnorton@customerdna.com>
20932
20933         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
20934         should only return a type for pointers, arrays, and passbyref types.
20935         Fixes bug #63841.
20936
20937 2004-09-21  Martin Baulig  <martin@ximian.com>
20938
20939         * domain.c (mono_debugger_check_runtime_version): New public
20940         function.
20941
20942         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
20943
20944 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
20945
20946         * reflection.c: Added missing sort to the declarative security 
20947         attributes table. MS implementation stops seeing the attributes if the
20948         token number regress in the table (as shown by ildasm and permview).
20949
20950 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
20951
20952         * object-internals.h (MonoReflectionModule): Add 'token' field.
20953         
20954         * reflection.c (mono_reflection_get_token): Add support for Module
20955         and Assembly.
20956         (mono_module_get_object): Set 'token' field.
20957         (mono_module_file_get_object): Set 'token' field.
20958
20959         * icall.c: Add new Assembly and Module icalls.
20960
20961         * appdomain.c: Bump corlib version.
20962
20963 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
20964
20965         * loader.h loader.c class.h class.c: Add helper functions for obtaining
20966         tokens of metadata objects.
20967
20968         * reflection.h reflection.c (mono_reflection_get_token): New function
20969         to obtain the token of a metadata object.
20970
20971         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
20972
20973 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
20974
20975         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
20976         
20977         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
20978
20979 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
20980
20981         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
20982         * object-internals.h: Added 3 MonoArray* members to MonoReflection
20983         AssemblyBuilder to access the permissions set in the class lib.
20984         * reflection.c: Added security attributes encoding step in 
20985         mono_image_build_metadata.
20986         * tabledefs.h: Added new security actions defined in 2.0:
20987         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
20988
20989 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
20990
20991         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
20992         macro parameter.
20993
20994 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
20995  
20996         * locales.c: nullify the ICU_collator member of CompareInfo when it is
20997           finalized. There where random SIGSEVs at program termination, when
20998           an object being finalized was trying to do a string comparison and
20999           the current culture was already finalized.
21000  
21001 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21002
21003         * threads.c: call thread_cleanup before finishing the thread if we get
21004         there.
21005
21006 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
21007
21008         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
21009         assemblies from the parent. Fixes #65665.
21010
21011 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
21012
21013         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
21014         modifiers.
21015
21016 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
21017
21018         * reflection.h: add prototype for mono_get_dbnull_object
21019         * reflection.c: add prototypes for get_default_param_value_blobs 
21020         and mono_get_object_from_blob for fussier compilers
21021
21022 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
21023  
21024         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
21025         false deadlock checks in class initialization.
21026  
21027 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
21028
21029         * image.c (mono_image_addref): Fix comment.
21030
21031         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
21032         possible.
21033
21034 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
21035
21036         * reflection.c (mono_param_get_objects): Modified to return
21037         ParameterInfo.DefaultValue object.
21038
21039         (get_default_param_value_blobs):
21040         (mono_get_object_from_blob):
21041         (mono_get_dbnull_object): New helper routines. 
21042
21043         * object.c (mono_get_constant_value_from_blob): New helper routine
21044         carved out from get_default_field_value ()
21045
21046         * object-internals.h (mono_get_constant_value_from_blob): Added
21047         function declaration.
21048
21049 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
21050
21051         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
21052         referenced assemblies. Fixes #62135.
21053
21054         * exception.h exception.c (mono_get_exception_file_not_found2): New
21055         helper function.
21056
21057 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
21058
21059         * class.h class.c: Add mono_type_get_underlying_type ().
21060
21061 2004-09-09  Geoff Norton <gnorton@customerndna.com>
21062
21063         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
21064         Fix GetTypes() to support dynamically created assemblies.
21065
21066 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
21067
21068         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
21069         
21070         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
21071         previous patch.
21072
21073         * reflection.h reflection.c loader.c: Allow dynamic construction of
21074         pinvoke methods. Fixes #65571.
21075         
21076         * reflection.c (mono_reflection_get_type): Revert previous change since
21077         it causes regressions.
21078
21079 2004-09-08  Martin Baulig  <martin@ximian.com>
21080
21081         * class.c (class_compute_field_layout): Don't call
21082         mono_class_layout_fields() for open generic instances.
21083
21084 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
21085         * threads.c appdomain.c: fix typo in GC macro
21086
21087 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21088
21089         * threads.c: don't call mono_thread_detach() in start_wrapper(),
21090         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
21091
21092 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
21093
21094         * image.c (mono_image_close): Applied patch from 
21095         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
21096         assembly is loaded multiple times from data.
21097         
21098         * image.c (mono_image_open): Fix warning.
21099
21100 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
21101
21102         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
21103         once. Fixes #58334.
21104         
21105         * reflection.c (mono_reflection_create_runtime_class): Initialize
21106         klass->nested_classes. Fixes #61224.
21107
21108 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
21109
21110         * threads.c: sched_yield() on exit, to allow threads to quit.
21111
21112 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
21113
21114         * object.c (mono_unhandled_exception): Remove leftover debug code.
21115
21116 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
21117
21118         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
21119
21120 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
21121
21122         * marshal.c (emit_marshal_array): Really null terminate string arrays.
21123         
21124         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
21125
21126 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
21127
21128         * marshal.c (emit_marshal_array): Null terminate string arrays.
21129         
21130         * marshal.c (raise_auto_layout_exception): Fix warning.
21131
21132         * reflection.c (mono_param_get_objects): Initialize the default value
21133         with DBNull.Value, not null. Fixes #62123.
21134
21135 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
21136
21137         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
21138         throw an exception with a cute explanation.
21139
21140 2004-09-06  Dick Porter  <dick@ximian.com>
21141
21142         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
21143         Close the new process's thread handle, as we don't use it.  The
21144         handle stays around forever otherwise.
21145
21146 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
21147
21148         * object.c (arith_overflow): Fix warning.
21149
21150         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
21151         calling conventions in method refs. Fixes #65352.
21152
21153         * reflection.c: Fix warnings.
21154
21155 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
21156
21157         * icall.c: Add a new icall for Array.Clear
21158
21159 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
21160
21161         * object.c: When allocating an array, we have to throw
21162         an overflow exception if any of the lengths are < 0.
21163
21164 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
21165
21166         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
21167         properly. Also move implementation of string array marshalling to 
21168         managed code. Fixes #42316.
21169
21170 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21171
21172         * assembly.c: provide more information when loading an assembly fails.
21173
21174 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21175
21176         * filewatcher.c: don't expect the development fam package to be
21177         installed.
21178
21179 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
21180
21181         * marshal.c: Make a copy of the signature cookie since it will be
21182         freed by the caller.
21183         
21184         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
21185
21186         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
21187
21188         * metadata.c (mono_metadata_free_marshal_spec): New function to free
21189         marshal specs.
21190
21191         * marshal.c: More refactoring.
21192         
21193         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
21194         smaller functions.
21195
21196 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
21197
21198         * object.c: In mono_message_invoke, fill the output parameter array after
21199           calling the managed method (it was done before the call). This fixes
21200           bug #59299.
21201
21202 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
21203
21204         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
21205         as well.
21206
21207 2004-09-02  Martin Baulig  <martin@ximian.com>
21208
21209         * class.c (mono_class_instance_size): Don't allow generic type
21210         definitions or open generic instances.
21211         (mono_class_array_element_size): If we're a value type, call
21212         mono_class_instance_size() on the original class.
21213
21214         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
21215         handle generic instances.
21216
21217         * mono-debug-debugger.c (write_type): Handle generic instances
21218         like classes.
21219
21220 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
21221
21222         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
21223         the allocation request fails. Fixes #65089.
21224
21225         * object.c (mono_runtime_free_method): Do not call mono_free_method.
21226         
21227         * object.c (mono_runtime_free_method): New function to free a dynamic
21228         method.
21229
21230         * marshal.c (mono_delegate_free_ftnptr): New function to free the
21231         delegate trampoline.
21232
21233         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
21234         with hasthis as dynamic,
21235
21236         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
21237
21238         * domain.c (mono_jit_info_table_remove): New function to remove an
21239         entry from the jit info table.
21240
21241         * class-internals.h (MonoMethod): Add 'dynamic' field.
21242
21243         * loader.c: Fix warnings.
21244
21245 2004-09-01  Martin Baulig  <martin@ximian.com>
21246
21247         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
21248         instead of mono_debugger_lock() because the latter one is a no-op
21249         unless running in the debugger.
21250
21251 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
21252
21253         * class.c (class_compute_field_layout): Classes with auto-layout or
21254         reference fields are not blittable.
21255         
21256 2004-09-01  Dick Porter  <dick@ximian.com>
21257
21258         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
21259         mono_image_get_filename() to get the assembly location.
21260
21261         * icall.c:
21262         * metadata.h: Fix compile warnings
21263
21264 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
21265
21266         * class.c (class_compute_field_layout): System.Object is blittable.
21267
21268         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
21269         as in/out. Fixes #59909.
21270
21271 2004-09-01  Martin Baulig  <martin@ximian.com>
21272
21273         * metadata.h (MONO_TYPE_ISREFERENCE): Call
21274         mono_metadata_generic_inst_is_valuetype() if we're a generic
21275         instance to check whether our underlying type is a reference type.
21276
21277 2004-09-01  Martin Baulig  <martin@ximian.com>
21278
21279         * metadata.c (mono_type_size): If we're a generic instance, call
21280         mono_class_value_size() for value types.
21281
21282 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
21283
21284         * marshal.c: Implement more custom marshalling functionality. Fixes
21285         #64915.
21286
21287 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
21288
21289         * mono-debug.c, debug-mono-symfile.c: add some locking love.
21290
21291 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
21292
21293         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
21294
21295         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
21296
21297         * icall.c: Fix some warnings.
21298
21299         * threads.c (abort_appdomain_thread): Fix unref errors.
21300         (mono_thread_current): Fix THREAD_DEBUG define.
21301
21302 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
21303
21304         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
21305
21306         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
21307
21308 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
21309
21310         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
21311         string arrays.
21312
21313 2004-08-28  Martin Baulig  <martin@ximian.com>
21314
21315         * metadata.c
21316         (mono_metadata_generic_inst_is_valuetype): New public function.
21317
21318         * metadata.h (MONO_TYPE_ISSTRUCT): Call
21319         mono_metadata_generic_inst_is_valuetype() if we're a generic
21320         instance to check whether our underlying type is a valuetype.
21321
21322 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
21323
21324         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
21325         #63768.
21326
21327 2004-08-25  Martin Baulig  <martin@ximian.com>
21328
21329         * loader.c (mono_get_method_from_token): Abstract methods can also
21330         be generic and thus have type parameters.
21331
21332         * metadata-internals.h
21333         (MonoDynamicImage): Added `GPtrArray *gen_params'.
21334
21335         * reflection.c (mono_image_get_generic_param_info): Don't create a
21336         metadata row, just add an entry to the `gen_params' array.
21337         (build_compressed_metadata): Sort the `gen_params' array and then
21338         actually create the metadata.
21339
21340 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21341
21342         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
21343
21344 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
21345
21346         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
21347
21348 2004-08-24  Martin Baulig  <martin@ximian.com>
21349
21350         * class.cs (mono_class_is_subclass_of): Like an interface, a
21351         generic instance also derives from System.Object.
21352
21353 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
21354
21355         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
21356         custom modifiers to be in any order. Fixes #61990.
21357
21358 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
21359
21360         * object.c: Register mono_object_new_fast icall.
21361         
21362         * object.c (mono_class_get_allocation_ftn): Return to calling
21363         mono_object_new_fast, since it seems faster to compute the object 
21364         size in unmanaged code than passing it as a parameter.
21365
21366         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
21367
21368         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
21369         this function with Boehm as the oom handler, so we don't have to check
21370         the result of GC_malloc.
21371
21372         * object.c: Remove checks for oom.
21373
21374         * object.h object.c (mono_class_get_allocation_ftn): New function to
21375         return the icall which can be used to allocate an instance of a given
21376         class. 
21377
21378         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
21379
21380         * class-internals.h: Add 'enabled' field.
21381
21382 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
21383
21384         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
21385
21386 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
21387         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
21388         value 0x0010.
21389
21390 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
21391
21392         * appdomain.c: use the Tls function for appdomain too,
21393         at Zoltan's request. Actually return in mono_context_get
21394
21395         * appdomain.c, profiler.c, threads.c: use __thread
21396
21397 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
21398
21399         * appdomain.c threads.c: Call GC_CreateThread on windows.
21400
21401         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
21402         multiple libraries since this don't work on windows.
21403
21404 2004-08-18  Martin Baulig  <martin@ximian.com>
21405
21406         * class-internals.h
21407         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
21408         MonoMethodHeader.
21409
21410         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
21411         MonoMethodNormal since we also need it for abstract and interface
21412         methods.
21413
21414         * reflection.c
21415         (build_compressed_metadata): Sort the GenericParam table.
21416         (mono_image_create_token): Added `gboolean create_methodspec'
21417         argument; this is false when generating a MethodImpl token.
21418         (reflection_methodbuilder_to_mono_method): Abstract and interface
21419         methods may also have generic parameters.
21420
21421 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
21422
21423         * appdomain.c: thread local alloc
21424
21425 2004-08-17  Martin Baulig  <martin@ximian.com>
21426
21427         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
21428
21429         * icall.c
21430         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
21431         argument.
21432
21433         * class.c (mono_type_get_full_name): New public function.
21434         (mono_type_get_name): Don't include the type arguments.
21435
21436 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
21437
21438         * Makefile.am: Build static versions of libmetadata and libmonoruntime
21439         for inclusion into the mono executable.
21440
21441 2004-08-16  Martin Baulig  <martin@ximian.com>
21442
21443         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
21444         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
21445
21446 2004-08-14  Martin Baulig  <martin@ximian.com>
21447
21448         * class.c (dup_type): Also copy the `byref' field.
21449
21450 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
21451
21452         * reflection.c (create_dynamic_mono_image): Revert the last change 
21453         since it breaks bootstrap.
21454
21455 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
21456
21457         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
21458
21459         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
21460         not free them with g_free.
21461
21462 2004-08-11  Martin Baulig  <martin@ximian.com>
21463
21464         * reflection.c (mono_reflection_setup_internal_class): Also call
21465         mono_class_setup_mono_type() if we already have a `tb->type.type'.
21466
21467 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
21468
21469         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
21470         called during default (first) AppDomain creation. Keep track of
21471         Evidence when loading assemblies.
21472
21473 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
21474
21475         * opcodes.c, opcodes.h: reduce runtime relocations.
21476
21477 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
21478
21479         * culture-info.h, locales.c: fixes and chages to sue the new
21480         optimized format of the locale data.
21481         * culture-info-tables.h: regenerated.
21482
21483 2004-08-06  Geoff Norton <gnorton@customerdna.com>
21484         
21485         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
21486
21487 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
21488
21489         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
21490         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
21491         * domain-internals.h: icall declaration.
21492         * icall.c: icall registration.
21493         * object-internals.h: New fields in MonoAssembly for CAS.
21494
21495 2004-08-05  Duncan Mak  <duncan@ximian.com>
21496
21497         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
21498         CEE_LDELEM_ANY.
21499
21500 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
21501
21502         * reflection.c: fix to deal with object[] arrays in custom ctors
21503         (bug #62550).
21504
21505 2004-08-05  Martin Baulig  <martin@ximian.com>
21506
21507         * class.c (mono_class_array_element_size): Added support for
21508         generic instances and correctly handle "recursive" types.
21509
21510 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
21511
21512         * assembly.c: Fix warnings.
21513
21514 2004-08-04  Martin Baulig  <martin@ximian.com>
21515
21516         * class.c
21517         (mono_type_get_name_recurse): Added `gboolean include_arity'
21518         argument specifying whether or not we should include the generic
21519         arity in the type name.
21520         (_mono_type_get_name): New static function.
21521         (mono_class_setup_vtable): If we're a generic instance, don't
21522         include the generic arity in the names of explicit method
21523         implementations.        
21524
21525 2004-08-03  Martin Baulig  <martin@ximian.com>
21526
21527         * class.c (mono_type_get_name_recurse): Enclose the generic type
21528         arguments in `<', '>'.
21529
21530 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
21531
21532         * gc.c: make GC warning messages use the trace API, they are just
21533         noise to most of the users.
21534
21535 2004-08-03  Martin Baulig  <martin@ximian.com>
21536
21537         * debug-mono-symfile.c (read_string): Correctly read the string.
21538
21539 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
21540
21541         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
21542         
21543         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
21544         icalls.
21545         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
21546
21547 2004-07-30  Martin Baulig  <martin@ximian.com>
21548
21549         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
21550         Reflect latest symbol writer changes.   
21551
21552 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
21553
21554         * object.c: always create an object if null is passed
21555         to Invoke() where a valuetype is expected.
21556
21557 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
21558
21559         * marshal.c (mono_marshal_init): make managed
21560         signatures match native ones better for 64bits.
21561
21562 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21563
21564         * appdomain.c: hack to build correctly the private bin path on windows.
21565         Fixes bug #61991.
21566
21567 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
21568
21569         * assembly.c: Load mscorlib from the correct framework directory
21570           (mono/<version>/mscorlib.dll).
21571         * appdomain.h: Added prototypes for new functions.
21572         * internals.h: Added some prototypes.
21573         * domain.c: When initializing the runtime, get from the executable and
21574           the configuration files the runtime version that the app supports.
21575           Added support methods for reading app.exe.config. Added list of versions
21576           supported by the JIT. Added two new methods: mono_init_from_assembly,
21577           which initializes the runtime and determines the required version from
21578           the provided exe file, and mono_init_version, which initializes
21579           the runtime using the provided version.
21580         * icall.c: Get machine.config from version-specific directory.
21581         * reflection.c: When generating an image, embed the version number
21582           of the current runtime.
21583
21584 2004-07-28  Dick Porter  <dick@ximian.com>
21585
21586         * socket-io.c
21587         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
21588         returned sockaddr size before creating the remote address object.
21589         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
21590         61608.
21591
21592 2004-07-28  Dick Porter  <dick@ximian.com>
21593
21594         * locales.c (string_invariant_compare_char): Fix invariant char
21595         compares between upper and lower cases.  Fixes bug 61458.
21596
21597 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
21598         
21599         * marshal.c: actually cache stelem.ref wrappers.
21600         
21601 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
21602
21603         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
21604         sections and remove the mono_cli_rva_map () function.
21605
21606 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
21607
21608         * debug-mono-symfile.c: fix one more endianess issue, from a patch
21609         by Geoff Norton (<gnorton@customerdna.com>).
21610
21611 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
21612
21613         * class.c: fix class loads for pointer types (typeof(int) !=
21614         typeof(int*)).
21615
21616 2004-07-27  Martin Baulig  <martin@ximian.com>
21617
21618         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
21619         reading the debugging information from an external ".mdb" file.
21620
21621 2004-07-24  Martin Baulig  <martin@ximian.com>
21622
21623         * reflection.c (mono_image_get_type_info): Only write a class
21624         layout entry if we actually have a size or a packing size.
21625
21626 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
21627
21628         * reflection.c (type_get_fully_qualified_name): 
21629         insert cast to get type checking of ?: with non-gcc compilers
21630
21631 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
21632
21633         * rand.c: use g_getenv for both lookups of
21634         MONO_EGD_SOCKET
21635
21636 2004-07-17  Martin Baulig  <martin@ximian.com>
21637
21638         * reflection.c (mono_reflection_bind_generic_method_parameters):
21639         Set `gmethod->reflection_info'.
21640
21641 2004-07-17  Martin Baulig  <martin@ximian.com>
21642
21643         * class.c (mono_class_create_from_typedef): Insert the newly
21644         created class into the hash table before computing the interfaces
21645         since we could be called recursively.
21646
21647 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
21648
21649         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
21650         function to implement stelem.ref in managed code
21651         * class-internals.h, debug-helpers.c: a new wrapper type
21652         for the above.
21653
21654 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
21655
21656         * gc.c: allow GC handles to work even when no GC is compiled in.
21657         Fix part of bug #61134 (GetAddrOfPinnedObject).
21658
21659 2004-07-13  Peter Williams  <peter@newton.cx>
21660  
21661         * process.c (complete_path): Make sure we don't attempt to execute
21662         directories.
21663  
21664 2004-07-12  Geoff Norton <gnorton@customerdna.com>
21665
21666         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
21667           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
21668           and will add/subtract the hour if needed
21669
21670 2004-07-12  Martin Baulig  <martin@ximian.com>
21671
21672         * reflection.c (mono_field_get_object): If we have
21673         `field->generic_info', take the attributes from
21674         `field->generic_info->generic_type'.    
21675
21676 2004-07-12  Martin Baulig  <martin@ximian.com>
21677
21678         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
21679         This function must be called before initializing the runtime.
21680         (mono_debug_init_1): New function; call this after initializing
21681         the runtime, but before loading the assembly.  It tells the
21682         debugger to load corlib and the builtin types.
21683
21684         * mono-debug-debugger.c: Did some larger changes in the debugging
21685         code; support recursive class declarations, make sure we actually
21686         add all classes.
21687
21688 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21689
21690         * debug-helpers.c: undo my previous patch and fixed the real issue in
21691         ../mini/exceptions-x86.c
21692
21693 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21694
21695         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
21696         when no HOME env. variable was set and a NullRef was thrown in a .cctor
21697         called from other .cctors.
21698
21699 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
21700
21701         * loader.c: Removed the mono_loader_wine_init hack now that we are
21702         doing a managed version of Windows.Forms.
21703
21704 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
21705
21706         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
21707         threadpool.c, threads.c: remove static data from rootset.
21708
21709 2004-07-09  Dick Porter  <dick@ximian.com>
21710
21711         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
21712         Don't do any more processing if the matched length was 0.  It was
21713         increasing the size of the string before.  Fixes bug 61167.
21714
21715 2004-07-09  Dick Porter  <dick@ximian.com>
21716
21717         * socket-io.h:
21718         * socket-io.c
21719         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
21720         Add support for SO_PEERCRED if its available.
21721
21722 2004-07-09  Peter Bartok <pbartok@novell.com>
21723         * loader.c: winelib.exe.so error message is now only displayed if
21724         MONO_DEBUG is set. To help us avoid questions when people are trying
21725         out the new Managed.Windows.Forms.
21726
21727 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
21728
21729         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
21730         for isinst and castclass wrappers.
21731
21732         * class-internals.h icall.c: Move registration and lookup of JIT icalls
21733         to libmetadata from the JIT, so they could be used by the marshalling
21734         code and the interpreter.
21735
21736         * marshal.c: Register marshalling related JIT icalls here instead of
21737         in mini.c. Use CEE_MONO_ICALL instead of the family of 
21738         CEE_MONO_PROC<x> opcodes to call marshalling functions.
21739
21740         * metadata.h: Remove unneeded marshalling conversions.
21741
21742         * opcodes.c: Update for new opcodes.
21743         
21744 2004-07-08  Martin Baulig  <martin@ximian.com>
21745
21746         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
21747         (mono_debug_get_domain_data): Make this function static.
21748
21749 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
21750
21751         * gc.c, object.h: add nice GC handle API for embedders.
21752
21753 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
21754
21755         * reflection.c: more changes for the new api
21756
21757         * object.c: When we reflect on a field w/ a constant value, it
21758         will not have a memory location, so we must access metadata. Also,
21759         allow easier reading of strings so that we can read them from
21760         the constant data.
21761
21762         * class.c (mono_class_layout_fields): no need for literal fields here.
21763
21764         * class-internals.h: api changes for const fields
21765
21766         * icall.c (ves_icall_get_enum_info): use new apis for const fields
21767
21768 2004-07-06  Martin Baulig  <martin@ximian.com>
21769
21770         * mono-debug.h: Increment version number to 44.
21771
21772         * mono-debug.c (mono_debug_add_wrapper): The second argument is
21773         now a gpointer, rewrote this whole method.
21774
21775         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
21776         function.  Add information about the wrapper in a new "misc table".
21777
21778         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
21779         for the new misc table.
21780
21781 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
21782
21783         * metadata-internals.h image.c: Add a cache for helper signatures.
21784
21785         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
21786
21787 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
21788
21789         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
21790         delegates from a delegate. Fixes #61033.
21791         
21792         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
21793         marshalling of stringbuilder arrays. Fixes #59900.
21794
21795 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
21796
21797         * icall.c: Add EnumBuilder:setup_enum_type icall.
21798
21799 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
21800
21801         * icall.c: Added a new icall for the property version of
21802         OffsetOfStringData.
21803
21804 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
21805
21806         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
21807         it has a constant size across platforms.
21808
21809         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
21810         stack trace.
21811
21812 2004-06-29  Martin Baulig  <martin@ximian.com>
21813
21814         * mono-debug.c (mono_debug_add_method): Protect the whole function
21815         in mono_debugger_lock(), not just parts of it.
21816
21817 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
21818
21819         * reflection.c: make sure padding bytes in heaps are zeroed.
21820
21821 2004-06-24  David Waite  <mass@akuma.org>
21822
21823         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
21824         image.c, loader.c, locales.c, marshal.c, metadata.c,
21825         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
21826         string-icalls.c, threads.c: change to C90-style comments from C99 /
21827         C++ -style
21828
21829 2004-06-24  Dick Porter  <dick@ximian.com>
21830
21831         * threads.c
21832         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
21833         return createdNew.  Fixes bug 60412.
21834
21835         * threads-types.h: 
21836         * icall.c: Add createdNew parameter to CreateMutex icall
21837
21838 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
21839
21840         * reflection.c, object-internals.h: save default value in params.
21841
21842 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21843
21844         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
21845         no need to build a new path combining that with the application base.
21846         Fixes bug #60442.
21847
21848 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
21849
21850         * reflection.c: fixed minor standard compliance issues.
21851
21852 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
21853
21854         * reflection.c: fixed issue with encoding some custom attributes
21855         (arrays in properties and fields, bug #60411).
21856
21857 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21858
21859         * reflection.c: fix start address when copying the public key token.
21860
21861 2004-06-23  Martin Baulig  <martin@ximian.com>
21862
21863         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
21864         the `exc' object in a static object to put it into the GC's root set.
21865
21866 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
21867
21868         * reflection.c: make mono_reflection_setup_internal_class ()
21869         callable a second time to setup a new parent class.
21870
21871 2004-06-23  Dick Porter  <dick@ximian.com>
21872
21873         * threads.c: Check for WAIT_IO_COMPLETION return values.
21874
21875 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
21876
21877         * appdomain.c: Removed the g_free on the public key token. Now copy 
21878         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
21879         * assembly.c: Added public key token string value when loading 
21880         assemblies. Fix bug #60439.
21881         * icall.c: Added missing informations (like public key) in 
21882         GetReferencedAssemblies. Fix #60519.
21883         * image.h: Changed definition for public key token from const char*
21884         public_tok_value to guchar public_key_token [17];
21885         * reflection.c: Updated for changes to public key token.
21886
21887 2004-06-22  Lluis Sanchez Gual
21888
21889         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
21890         for the field in base classes.
21891
21892 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
21893
21894         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
21895         mark headers as not supported, they are installed only for use by the
21896         debugger.
21897
21898 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
21899
21900         * *.c, *.h: avoid namespace pollution in public headers.
21901
21902 2004-06-21  Martin Baulig  <martin@ximian.com>
21903
21904         * exception.c (mono_get_exception_security): It's in
21905         "System.Security", not in "System".
21906
21907         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
21908         the exception classes.
21909
21910 2004-06-21  Martin Baulig  <martin@ximian.com>
21911
21912         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
21913         Protect the exception object from being finalized.
21914
21915 2004-06-21  Martin Baulig  <martin@ximian.com>
21916
21917         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
21918         public function.
21919
21920 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
21921
21922         * reflection.c: Load the assembly in mono_reflection_type_from_name,
21923         if it was not loaded before. Fix parts of #60439.
21924
21925 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
21926
21927         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
21928         code that was broken since Ben's change: wrappers are now
21929         dependent on the method signature only again.
21930
21931 2004-06-21  Martin Baulig  <martin@ximian.com>
21932
21933         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
21934         added interface support.
21935
21936 2004-06-21  Martin Baulig  <martin@ximian.com>
21937
21938         * class.c (mono_vtable_get_static_field_data): New public method.
21939
21940 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
21941
21942         * filewatcher.c : Windows build fix to be compliant with API changes.
21943
21944 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
21945
21946         * class.h, class.c: more accessors.
21947         * metadata.h, metadata.c: prepare for hiding MonoType and
21948         MonoMethodSignature: people should use the accessors from now on
21949         outside of the tree.
21950
21951 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
21952
21953         * *.c, *.h: more API cleanups.
21954
21955 2004-06-18  Jackson Harper  <jackson@ximian.com>
21956
21957         * assembly.c: Trace loading assemblies.
21958         * loader.c: Trace loading native libraries.
21959         * mono-config.c: Trace loading config files.
21960         
21961 2004-06-18  Dick Porter  <dick@ximian.com>
21962
21963         * locales.c: Tell ICU the lengths of strings, it can cope with
21964         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
21965
21966 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
21967
21968         * image.c: swapped name/filename;
21969
21970 2004-06-18  Martin Baulig  <martin@ximian.com>
21971
21972         * mono-debug-debugger.c (write_class): Write the parent class at
21973         the end of the header.
21974
21975 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
21976
21977         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
21978
21979 2004-06-17  Raja R Harinath  <rharinath@novell.com>
21980
21981         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
21982         (bundle_obj): New conditional define.
21983         (BUILT_SOURCES): Remove.
21984         ($(bundle_srcs)): Make parallel-make safe.
21985         (libmonoruntime_la_LIBADD): Make unconditional.
21986         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
21987         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
21988
21989 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
21990
21991         * culture-info-tables.h: It was inconsistent with the latest
21992           supp info files.
21993
21994 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
21995
21996         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
21997         be loaded.
21998
21999         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
22000         with gcc 2.95.
22001
22002 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
22003
22004         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
22005         cleaned up public header threads.h.
22006
22007 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
22008
22009         * Makefile.am, *.c, *.h: more API cleanups.
22010
22011 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
22012
22013         * Makefile.am: removed monosn from compilation.
22014         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
22015         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
22016         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
22017         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
22018         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
22019         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
22020
22021 2004-06-15  Jackson Harper  <jackson@ximian.com>
22022
22023         * assembly.c: Make locales lower case when searching the GAC for
22024         assemblies. gacutil will always make locales lowercase when
22025         installing so this effectively makes them case insensitive.
22026         
22027 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
22028
22029         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
22030         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
22031           parameter which allows to choose whether the wait can be interrupted or 
22032           not. Also added the method mono_monitor_enter(), which locks the monitor
22033           using an infinite wait and without allowing interruption.
22034           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
22035           interrupted.
22036         * object.h: Added new fields in MonoThread. suspend_event holds the event
22037           used to susped/resume the thread. synch_lock is the lock object to use for
22038           modifying the thread state.
22039         * threads.c: Use the new synch_lock object for locking, instead of "this",
22040           which can generate deadlocks.
22041           Moved thread state change in Thread.Sleep and Thread.Join from managed
22042           to unmanaged code. This avoids a deadlock when the thread was suspended
22043           just after acquiring the thread lock.
22044           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
22045           Implemented Thread.Suspend using an event instead of ThreadSuspend,
22046           which is not fully implemented in the io-layer.
22047         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
22048
22049 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
22050
22051         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
22052         threads-types.h: more API cleanups.
22053
22054 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
22055
22056         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
22057         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
22058         threadpool.c, threads.c: first pass at the exported API cleanup.
22059
22060 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
22061
22062         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
22063
22064 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22065
22066         * icall.c: added internalGetHome.
22067
22068 2004-06-14  Dick Porter  <dick@ximian.com>
22069
22070         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
22071         possible to return successfully when '.' or '..' were the only
22072         entries in a directory, but were skipped.  The MonoIOStat was not
22073         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
22074         Fixes bug 59574.
22075
22076 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
22077
22078         * reflection.c: make binaries run on .Net 1.1 by default.
22079
22080 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
22081
22082         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
22083
22084 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
22085
22086         * marshal.c: keep track of struct size with explicit layout
22087         (bug #59979).
22088
22089 2004-06-12  Martin Baulig  <martin@ximian.com>
22090
22091         * mono-debug-debugger.c: Comment out a debugging g_message().
22092
22093 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
22094
22095         * reflection.c, reflection.h: do not free custom attrs that are cached.
22096         * icall.c: use braces to make code clearer.
22097
22098 2004-06-11  Martin Baulig  <martin@ximian.com>
22099
22100         * class.h (MonoInflatedField): New type.
22101         (MonoClassField): Replaced `MonoType *generic_type' with
22102         `MonoInflatedField *generic_info'.
22103
22104         * icall.c
22105         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
22106
22107 2004-06-11  Martin Baulig  <martin@ximian.com>
22108
22109         * reflection.c (mono_image_create_method_token): Correctly encode
22110         varargs methods.
22111
22112 2004-06-11  Martin Baulig  <martin@ximian.com>
22113
22114         * metadata.c (mono_metadata_parse_method_signature): When parsing
22115         a MethodDef which has VarArgs, also set sentinelpos if we don't
22116         have any parameters.
22117
22118 2004-06-11  Martin Baulig  <martin@ximian.com>
22119
22120         * verify.c (mono_method_verify): In CEE_CALL, use
22121         mono_method_get_signature() to get the method's signature, unless
22122         we're a PInvoke method.
22123
22124 2004-06-10  Jackson Harper  <jackson@ximian.com>
22125
22126         * assembly.c: Use <path>/lib/mono/gac for the extra paths
22127         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
22128         logical name as the supplied path is just a prefix to the gac not
22129         the direct path to it.
22130         
22131 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
22132
22133         * reflection.c: make the token for a created method match
22134         the token of the MethodBuilder it was created from
22135         (IKVM requires this behaviour now).
22136
22137 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
22138
22139         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
22140         reflection.c, socket-io.c: leak fixes.
22141
22142 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
22143
22144         * icall.c: handle sentinel pos in vararg methods in position different
22145         from 0.
22146
22147 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22148
22149         * culture-info-tables.h: freshly generated.
22150
22151 2004-06-09  Martin Baulig  <martin@ximian.com>
22152
22153         * loader.c (mono_get_method_constrained): Call `mono_class_init
22154         (constrained_class)'.   
22155
22156 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
22157
22158         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
22159         any methods. Fixes #59629.
22160
22161 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
22162
22163         * culture-info-tables.h: reflecting locale-builder updates.
22164
22165 2004-06-08  Dick Porter  <dick@ximian.com>
22166
22167         * object.h:
22168         * locales.c: Fixed compile warnings, including a real bug in
22169         CompareInfo_internal_compare.
22170         
22171 2004-06-08  Dick Porter  <dick@ximian.com>
22172
22173         * locales.c
22174         (ves_icall_System_Globalization_CompareInfo_internal_index):
22175         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
22176         Double-check the resuls of usearches, because ICU currently
22177         ignores most of the collator settings here.  Fixes bug 59720.
22178         
22179 2004-06-08  Dick Porter  <dick@ximian.com>
22180
22181         * locales.c
22182         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
22183         Fix memory leak and segfault-causing typo.  No idea how this one
22184         lasted so long without being noticed.
22185
22186 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
22187
22188         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
22189         any methods. Fixes #59629.
22190
22191 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22192
22193         * assembly.c:
22194         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
22195         own the critical section before). Removed dead code (that's done
22196         in the preload hook).
22197
22198         (mono_assembly_load_with_partial_name): call the preload hook.
22199
22200 2004-06-08  Martin Baulig  <martin@ximian.com>
22201
22202         * metadata.c (mono_metadata_signature_alloc): Default
22203         `sentinelpos' to -1.
22204
22205         * reflection.c (mono_image_get_array_token): Likewise.
22206
22207 2004-06-08  Martin Baulig  <martin@ximian.com>
22208
22209         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
22210
22211         * metadata.c (mono_metadata_parse_method_signature): When parsing
22212         a MethodDef which has VarArgs, set sentinelpos.
22213
22214         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
22215         `gint16' since we're using -1 for non-varargs methods.
22216
22217         * reflection.c
22218         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
22219         (method_encode_signature): Added varargs support.
22220         (method_builder_encode_signature): Likewise.
22221         (mono_image_get_varargs_method_token): New static method.
22222         (mono_image_create_method_token): New public method; this is
22223         called via an icall instead of mono_image_create_token() when
22224         calling a varargs method.       
22225
22226 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
22227
22228         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
22229
22230 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
22231
22232         * culture-info-tables.h : Reflecting the latest locale-builder that
22233           fixed empty array representation ({} to {0}).
22234
22235 2004-06-07  Jackson Harper  <jackson@ximian.com>
22236
22237         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
22238         looking up extra gac paths. This allows MONO_GAC_PATH to act
22239         exactly like a prefix.
22240         
22241 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
22242
22243         * reflection.c (mono_reflection_type_from_name): Make a copy of the
22244         type name before modifying it. Fixes #59405.
22245
22246 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
22247
22248         * culture-info.h: added fields for "all datetime patterns".
22249         * locales.c: (  ves_icall_System_Globalization_CultureInfo
22250           _construct_datetime_format ()): fill xxx_patterns fields.
22251         * object.h: added fields for "all datetime patterns" to
22252           MonoDateTimeFormatInfo.
22253         * culture-info-tables.h: reflecting locale-builder updates.
22254
22255 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
22256
22257         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
22258         the event has no add and remove methods. Fixes #59629.
22259
22260 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
22261
22262         * object.c: Fixed possible integer overflow when allocating large
22263         strings.
22264
22265 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
22266
22267         * culture-info-tables.h: reflecting locale-builder updates.
22268
22269 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
22270
22271         * culture-info-tables.h: reflecting locale-builder updates.
22272
22273 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
22274
22275         * culture-info-tables.h: reflecting locale-builder updates.
22276
22277 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
22278
22279         * threads.c: Made Thread.Sleep abortable.
22280
22281 2004-06-02  Martin Baulig  <martin@ximian.com>
22282
22283         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
22284
22285         * debug-mono-symfile.h: Bumped symbol file version number to 37.
22286
22287 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
22288
22289         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
22290
22291 2004-05-30  Jackson Harper  <jackson@ximian.com>
22292
22293         * reflection.c: Do not hardcode assembly versions or public key
22294         tokens anymore. All of this except the corlib section was dead
22295         code anyways.
22296         
22297 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
22298
22299         * object.c (mono_runtime_invoke_array): Automatically create boxed
22300         objects for byref valuetypes if needed. Fixes #59300.
22301         
22302         * object.c (mono_method_return_message_restore): Handle 
22303         MONO_TYPE_OBJECT as well.
22304
22305 2004-05-28  Jackson Harper  <jackson@ximian.com>
22306
22307         * reflection.c: The modified type encoding was causing build
22308         problems. Reverted for now.
22309         
22310 2004-05-28  Jackson Harper  <jackson@ximian.com>
22311
22312         * reflection.c/h: Take an assembly ref so that we dont create
22313         fully qualified names when encoding types in the same assembly as
22314         the custom attribute being emitted.
22315         * appdomain.c: Increment version number.
22316         
22317 2004-05-26  Duncan Mak  <duncan@ximian.com>
22318
22319         * icall.c
22320         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
22321         Set the full version number (major, minor, build, revision).
22322
22323 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
22324
22325         * marshal.c (emit_struct_conv): increment src/dst after blit
22326         (mono_marshal_get_managed_wrapper,
22327         mono_marshal_get_native_wrapper): make sure we have marshalling
22328         info before marshalling params (info computation affects
22329         blittable)
22330
22331         * class.c (class_compute_field_layout): correctly deal with
22332         blittable
22333         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
22334         value types (as per what windows dows by default)
22335         (mono_class_setup_mono_type): System.ValueType is blittable
22336         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
22337         blittable
22338
22339         * marshal.c (mono_marshal_load_type_info): flag types  as
22340         non-blittable if the native layout doesn't match the managed
22341         layout
22342
22343 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22344
22345         * appdomain.c: don't add stuff in the private search path that is
22346         above the application base. If application base is not set, there's
22347         no private search path.
22348
22349 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
22350
22351         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
22352         byref struct arguments in native->managed marshalling.
22353
22354 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
22355
22356         * marshal.c (mono_marshal_get_runtime_invoke): correctly
22357         cache methods using signature (special case for methods
22358         that are value type or string class)
22359         
22360         * image.c (mono_image_close): clean up allocated GSList's
22361         in runtime_invoke_cache.
22362
22363 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22364
22365         * mono-config.c: set the correct path for mono_cfg_dir on windows when
22366         there's no MONO_CFG_DIR environment variable defined.
22367
22368 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22369
22370         * threads.c: windows version must be >= 0x0500 to include OpenThread.
22371
22372 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
22373
22374         * threadpool.c: Really wait for 500ms after the async call, even if the wait
22375           is interrumped.
22376         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
22377           before waiting for it, and call CloseHandle after the wait to unref it.
22378           This will make sure that handles are not disposed too early.
22379
22380 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22381
22382         * appdomain.c:
22383         * appdomain.h:
22384         * icall.c: removed
22385         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
22386         needed now.
22387
22388         * object.c: se the application_base only for the domain that runs
22389         Main. Fixes bug #59216,
22390
22391 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22392
22393         * appdomain.c:
22394         * object.c: only the domain in which Main is run have
22395         SetupInformation.ConfigurationFile set, so moved a few lines from
22396         appdomain.c to object.c.
22397
22398 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22399
22400         * appdomain.c: we tried to load [name].(dll|exe), but according
22401         to bug #57710, we must also try [culture]/[name].(dll|exe) and
22402         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
22403         There's a test case attached to bug #58922.
22404
22405 2004-05-27  Dick Porter  <dick@ximian.com>
22406
22407         * icall.c:
22408         * file-io.c: Implemented icalls for locking and unlocking regions
22409         in a file.
22410         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
22411         FALSE on error (fixes both compiler warning and real bug.)
22412
22413 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
22414
22415         * culture-info-tables.h: reflecting locale-builder updates.
22416
22417           (Added missing ChangeLog entry for 05/26)
22418
22419 2004-05-27  Jackson Harper  <jackson@ximian.com>
22420
22421         * locales.c: Fix some cut and paste errors.
22422         
22423 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22424
22425         * mono-config.c: set the correct path for config. directory on windows.
22426
22427 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
22428
22429         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
22430           on win32.
22431
22432 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
22433
22434         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
22435         from pinvoke functions.
22436         
22437         * marshal.c (mono_ftnptr_to_delegate): Implement this.
22438
22439 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
22440
22441         * culture-info-tables.h: reflecting locale-builder updates.
22442
22443 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
22444
22445         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
22446         #59086.
22447
22448 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
22449
22450         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
22451         * icall.c: Modified icalls for RNG.
22452         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
22453         Windows (CryptoAPI).
22454
22455 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
22456
22457         * locales.c: Fix build.
22458
22459 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
22460
22461         * culture-info-tables.h: reflecting locale-builder updates.
22462
22463 2004-05-25  Jackson Harper  <jackson@ximian.com>
22464
22465         * locales.c: When creating the current culture use the $LANGs
22466         specific culture. So DateTimeFormat and NumberFormat entries are created.
22467         
22468 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
22469
22470         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
22471         a char array as parameter.
22472
22473 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
22474
22475         * image.c: In mono_image_open(), always use an absolute path name to
22476           look for already loaded images.
22477
22478 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
22479
22480         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
22481         missing in the windows build (like older cygwin include files).
22482
22483 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
22484
22485         * icall.c: Fixed check for possible integer overflow in Buffer_
22486         BlockCopy icall. Replaced comments style // by /* */.
22487
22488 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
22489
22490         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
22491         
22492         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
22493         check after MONO_VTADDR. Fixes pinvoke2.exe.
22494
22495         * marshal.h marshal.c metadata.h: Add beginnings of support for
22496         ftnptr -> delegate marshalling.
22497
22498 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
22499
22500         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
22501         * threads.c: Fix warnings.
22502
22503 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
22504
22505         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
22506         * icall.c: Registered icalls for Suspend and Resume.
22507         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
22508           Thread.Abort.
22509         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
22510         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
22511         * process.c: Use WaitForSingleObjectEx.
22512         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
22513           checkpoints.
22514         * threads.c, threads.h: Make use of new Ex wait methods. Improved
22515           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
22516           for Suspend and Resume. Added new mono_thread_stop, used for stoping
22517           background threads. Added basic support for Abort in Windows.
22518           Start new threads using a managed delegate invoke wrapper. This wrapper
22519           has an interruption checkpoint that is needed since an interruption
22520           can be requested before the thread leaves the unmanaged code that starts 
22521           the thread.
22522         * marshal.c: Added interruption checkpoint after every native call, and
22523           also before managed calls for wrappers called from unmanaged code to
22524           go into managed code.
22525         * object.h: Added new field in MonoThread to keep track of interruption
22526           requests.
22527
22528 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
22529
22530         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
22531         calls.
22532
22533 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22534
22535         * appdomain.c:
22536         * assembly.c:
22537         * gc.c:
22538         * locales.c:
22539         * mono-config.c:
22540         * rand.c: getenv -> g_getenv (windows!)
22541
22542         * process.c: complete_path is also used on non-windows platforms.
22543
22544 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22545
22546         * icall.c: new signature for Process_Start.
22547
22548         * process.[ch]: new signature for Process_Start. If we're on windows
22549         and UseShellExecute is false, we have to search for the program by
22550         ourselves if we don't get a full path.
22551
22552 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
22553
22554         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
22555         marshalling and call CleanUpNativeData if needed. Fixes #58646.
22556
22557 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22558
22559         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
22560         Fixes bug #58373.
22561
22562 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22563
22564         * process.c: use double quotes to quote program name and arguments on
22565         windows. Fixes bug #58575.
22566
22567 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22568
22569         * file-io.c: don't return "." and ".." when using windows Find*File.
22570
22571 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
22572
22573         * marshal.c: Don't pass wrappers to message init because method 
22574         addressed used to lookup metadata. part of remoting[2|3] fix.
22575
22576 2004-05-15  Jackson Harper  <jackson@ximian.com>
22577
22578         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
22579         path is essentially the same as MONO_PATH except that it points to
22580         GACs instead of lib directories.
22581         * loader.h: The user gac is gone so we dont need function to
22582         enable/disable it.
22583         * mono-config.c: user gac option is now gone.
22584         
22585 2004-05-15  Jackson Harper  <jackson@ximian.com>
22586
22587         * culture-info.h: Make defines more consistent, add calendar data
22588         to the culture info table.
22589         * culture-info-tables.h: Add basic calendar data. Basically
22590         everyone gets default gregorian until all the data is
22591         updated.
22592         * locales.c: Use the new consistent defines. Set calendar data for
22593         culture info objects.
22594         * object.h: add a field for calendar data to CultureInfo
22595         
22596 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
22597
22598         * image.c: image->runtime_invoke_cache is keyed on signatures now.
22599         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
22600         a signature.
22601         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
22602         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
22603         an extra param that is the pointer of the method to invoke. The IL for
22604         the invoke method is no longer specific to the method, but to the
22605         signature of the method. Thus, we can share the same code for multiple
22606         methods. This reduces the number of methods that have to be compiled.
22607
22608 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
22609
22610         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
22611
22612         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
22613
22614         * icall.c: Optimize Buffer.BlockCopy.
22615
22616 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22617
22618         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
22619         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
22620         quote). Changed them to "MMMM yyyy".
22621
22622 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
22623
22624         * rand.c
22625         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
22626
22627 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
22628
22629         * reflection.h: Updated after changes to managed structures.
22630
22631         * appdomain.c: Bump corlib version.
22632
22633 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22634
22635         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
22636         windows.
22637
22638 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22639
22640         * Makefile.am: link to ../os/libmonoos.la on windows.
22641
22642         * assembly.c:
22643                 -If MONO_DEBUG, warn about non-existing directories in
22644                 MONO_PATH.
22645                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
22646                 compile time variable.
22647                 -Removed init_default_path and call mono_set_rootdir from
22648                 libmonoos.a instead (windows only).
22649
22650         * assembly.h: declare mono_assembly_getrootdir().
22651
22652         * domain.c:
22653         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
22654
22655         * loader.c: s/getenv/g_getenv/
22656
22657 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
22658
22659         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
22660
22661         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
22662
22663         * metadata.h: Add new marshalling conversions.
22664
22665         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
22666         function.
22667
22668         * reflection.c (mono_reflection_get_type): Lookup the type in all
22669         modules of a multi-module assembly. Fixes #58291.
22670
22671 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
22672
22673         * threads.c: Before aborting a background, set the StopRequested
22674         state.  This avoids throwing the Abort exception.
22675         In mono_thread_manage, don't continue with the shutdown until all
22676         aborted threads have actually stopped.
22677
22678 2004-05-10  Jackson Harper  <jackson@ximian.com>
22679
22680         * locales.c: Remove the modifier from culture names.
22681         
22682 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22683
22684         * Makefile.am: monosn is not installed any more. It has been deprecated
22685         in favor of sn.
22686
22687 2004-05-07  Jackson Harper  <jackson@ximian.com>
22688
22689         * locales.c
22690         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
22691         Fix array construction, add bailout if the length is 0.
22692
22693 2004-05-07  Dick Porter  <dick@ximian.com>
22694
22695         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
22696         machine doesn't have a DNS entry.  Patch by Urs Muff
22697         (umuff@quark.com), fixes bug 57928.
22698
22699 2004-05-06  Jackson Harper  <jackson@ximian.com>
22700
22701         * reflection.c: Handle null PublicTokens properly. alloc mem for
22702         assembly names culture so we dont crash when freeing it.
22703         
22704 2004-05-06  Jackson Harper  <jackson@ximian.com>
22705
22706         * assembly.c: Check the usergac when loading with partial names.
22707         
22708 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
22709
22710         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
22711         does nothing for now (not required for Linux/Windows) but the class
22712         library can call it (and a newer or modified runtime could need it).
22713         * icall.c: Registred icall.
22714
22715 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22716
22717         * loader.c: prints a message on module loading error we set MONO_DEBUG
22718         environment variable.
22719
22720 2004-05-05  Jackson Harper  <jackson@ximian.com>
22721
22722         * appdomain.c: Handle PublicKeyToken=null properly.
22723         
22724 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
22725
22726         * environment.c|h: Added icall ves_icall_System_Environment_
22727         GetOSVersionString to get the current OS version as a string.
22728         * icall.c: Registred icall.
22729
22730 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
22731
22732         * object.c: in mono_object_get_virtual_method(), take into account that
22733         non-virtual methods don't have a slot in the vtable. Check needed when
22734         the object is a proxy.
22735
22736 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
22737
22738         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
22739         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
22740
22741         * object.c (mono_class_compute_gc_descriptor): Fix warning.
22742
22743         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
22744         passed when a valuetype is expected.
22745
22746         * object.c (mono_unhandled_exception): Only set the exit code if the
22747         exception happens in the main thread. Fixes thread5.exe.
22748
22749         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
22750         invalid names. Fixes #58047.
22751
22752 2004-05-03  Jackson Harper  <jackson@ximian.com>
22753
22754         * assembly.c: This line was committed accidently and is unneeded.
22755         
22756 2004-05-03  Jackson Harper  <jackson@ximian.com>
22757
22758         * icall.c: Add new icall for Assembly::LoadWithPartialName
22759         * assembly.c/.h: new function that probes the GAC to load partial
22760         assembly names by Paolo Molaro.
22761         
22762 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22763
22764         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
22765         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
22766         (type_get_fully_qualified_name): Added PublicKeyToken when building a
22767         full type name.
22768
22769 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22770
22771         * appdomain.c: fixed check for 'neutral' culture and removed warning.
22772         * reflection.c: fix bug when parsing a full type name and Version is not
22773         the last thing in the string.
22774
22775 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
22776
22777         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
22778         crashes when it is freed.
22779
22780 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22781
22782         * assembly.c: print the compat warning to stderr.
22783
22784 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
22785
22786         * assembly.c (mono_assembly_load_references): Add a compatibility
22787         hack to run old applications that might be still referencing the
22788         3300-based assemblies, only do this for System.xxx.
22789
22790 2004-05-01  Jackson Harper  <jackson@ximian.com>
22791
22792         * appdomain.c: If the culture is neutral we set it to "".
22793         
22794 2004-04-29  Jackson Harper  <jackson@ximian.com>
22795
22796         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
22797
22798 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
22799  
22800         * string-icalls.c: added low overhead function for copying chars
22801         * icall.c: added needed icall for the above function
22802  
22803 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22804
22805         * icall.c: fix return value of get_global_assembly_cache.  Implemented
22806         Environment.GetLogicalDrives.
22807
22808 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
22809
22810         * rand.c: try and talk to egd or prngd
22811         for random bytes if opening devices fail.
22812
22813 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
22814
22815         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
22816         alignment for the type using the native alignment of its members 
22817         instead of using klass->min_align.
22818
22819         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
22820
22821 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22822
22823         * file-io.c:
22824         * socket-io.c: added check for sys/aio.h.
22825
22826 2004-04-28  Dick Porter  <dick@ximian.com>
22827
22828         * threads.c: Don't abort a thread thats already aborting, when
22829         terminating everything.
22830
22831 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22832
22833         * icall.c: added 2 new async calls for Socket.
22834
22835         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
22836         IO on *nix systems.
22837
22838         * threadpool.c: removed unused variable.
22839
22840 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
22841
22842         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
22843
22844 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
22845
22846         * locales.c: put back string_invariant_tolower () and
22847         string_invariant_toupper ().
22848
22849 2004-04-26 David Waite <mass@akuma.org>
22850
22851         * file-io.h:
22852         * socket-io.h:
22853         * threads.h:
22854         * unicode.h: remove comma from end of enumeration declarations
22855
22856 2004-04-26 David Waite <mass@akuma.org>
22857
22858         * debug-mono-symfile.h:
22859         * decimal.c:
22860         * mono_debug.h:
22861         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
22862
22863
22864 2004-04-26  Jackson Harper  <jackson@ximian.com>
22865
22866         * appdomain.c: Increment version number.
22867         
22868 2004-04-26  Jackson Harper  <jackson@ximian.com>
22869
22870         * appdomain.c: Set assembly references public token value when
22871         PublicKeyToken is specified, not the hash_value. Free public token
22872         values when free assembly name data. Previously the public key
22873         token was hex decoded, however we are using hex encoded public key
22874         tokens, so this is not neccasary.
22875         * assembly.c: Lookup assemblies in the gac if their public token
22876         value is set. Add function to allow enabling user gac
22877         lookups. Specify whether or not the assembly was loaded from the
22878         GAC. Compare full assembly names when checking the cache for
22879         assemblies (Temporarily disabled see comment in code). Remove
22880         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
22881         specifies trace-loader they get extra info to stdout on the
22882         loading of assemblies.
22883         * image.h: Add a field for an assembly references public token
22884         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
22885         whether an assembly has been loaded from the GAC.
22886         * image.c: Remove a corlib -> mscorlib name mapping.
22887         * loader.h: Add function to enable/disable the user gac.
22888         * mono-config.c: Check if the usergac is enabled in the config
22889         file.
22890         * icall.c: New icall to determine whether or not an assembly has
22891         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
22892         * tabldefs.h: Add constant for assemblyref flag that specifies a
22893         full public key is used instead of a public token.
22894         * reflection.c: Remove mscorlib -> corlib mappings. Set
22895         PublicTokenValue instead of hash value. This value is a hex
22896         string so it does not need to be expanded.
22897
22898 2004-04-26  Martin Baulig  <martin@ximian.com>
22899
22900         * mono-debug-debugger.c (mono_debugger_initialize): Set
22901         `mono_debugger_initialized' before calling mono_debug_lock().
22902
22903 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
22904
22905         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
22906           InternalToUpper/InternalToLower.
22907         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
22908           removed invariant culture shortcut.  This is now done in managed code.
22909         * locales.c: (string_invariant_toupper/tolower) removed.
22910
22911 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22912
22913         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
22914         Added Poll internal call.
22915
22916         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
22917         call for Poll. Select was too heavy for polling a single socket.
22918
22919         * threadpool.[ch]: added mono_threadpool_cleanup.
22920         * threads.c: use it. Don't use Thread_Abort on windows.
22921
22922 2004-04-23  Martin Baulig  <martin@ximian.com>
22923
22924         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
22925
22926 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
22927
22928         * icall.c: Registred new icalls for key pair protection and added an
22929         icall for Environment.GetFolderPath on Windows.
22930         * security.c|h: Added new icalls for key pair protection.
22931
22932 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22933
22934         * socket-io.c: don't display the non-supported family warning for known
22935         families. Now this is not displayed on windows when checking support
22936         for IPv4/IPv6.
22937
22938 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22939
22940         * class.c: don't display the layout warning for static fields.
22941
22942 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
22943
22944         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
22945         * locales.c, locales.h: Added new icalls for culture-specific
22946         Char.ToLower and Char.ToUpper.
22947
22948 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22949
22950         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
22951         by David Waite.
22952
22953 2004-04-20  Martin Baulig  <martin@ximian.com>
22954
22955         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
22956         of the type name before passing it to mono_reflection_type_from_name().
22957
22958 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
22959
22960         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
22961         encodings here. Fixes #56965.
22962
22963 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
22964
22965         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
22966         fix test on strstr result not that I can see anything that
22967         relies on the result.
22968
22969 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
22970
22971         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
22972         Fixes #57081.
22973
22974         * marshal.c (mono_marshal_get_string_encoding): New helper function.
22975
22976         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
22977         function to determine which marshalling to use for strings. Fixes
22978         #56965.
22979
22980         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
22981
22982         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
22983
22984 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
22985
22986         * icall.c: #include mono-config.h
22987
22988 2004-04-15  Jackson Harper  <jackson@ximian.com>
22989
22990         * culture-info-tables.h: Fix date formats for en-US culture.
22991         
22992 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
22993
22994         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
22995         ThreadPool.SetMinThreads.
22996         * threadpool.c: Implemented ThreadPool.GetMinThreads and
22997         ThreadPool.SetMinThreads.
22998
22999 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
23000
23001         * mono-config.c: also load the .config file in the directory
23002         where the assembly was found.
23003
23004 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
23005
23006         * assembly.c: load per-assembly config files.
23007         * icall.c: decrapified code to get the config dir and moved to
23008         mono-config.c.
23009         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
23010         per-assembly config files. When doing a dll map lookup give precedence
23011         to the per-assembly data.
23012
23013 2004-04-14  Martin Baulig  <martin@ximian.com>
23014
23015         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
23016         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
23017         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
23018
23019         * mono-debugger-debugger.c: While the debugger is locked, remember
23020         whether the symbol tables have changes and send one single
23021         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
23022
23023 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
23024
23025         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
23026
23027         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
23028         function.
23029
23030         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
23031         account when marshalling string arrays. Fixes #56965.
23032
23033 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
23034
23035         * icall.c: Add new icalls mapping for security.
23036         * security.c|h: Add internal calls for WindowsIdentity,
23037         WindowsImpersonationContext and WindowsPrincipal.
23038
23039 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
23040
23041         * class.c: Added comment to ensure the System.MonoDummy class
23042         is removed when no longer necessary
23043
23044 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
23045
23046         * appdomain.c: Pass arguments to the bootstraping exceptions to
23047         minimize JITed methods at boot
23048
23049         * metadata.c (mono_exception_from_name_two_strings): Allow for the
23050         second string to be null.
23051
23052         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
23053         Change the protocol to minimize the JIT methods at startup.  Now
23054         it Returns the internal codepage, if the value of "int_code_page"
23055         is 1 at entry, and we can not compute a suitable code page
23056         number, returns the code page as a string.
23057
23058 2004-04-13  Jackson Harper  <jackson@ximian.com>
23059
23060         * culture-info-tables.h: Fix number of decimal digits for all
23061         english locales.
23062
23063 2004-04-13  Jackson Harper  <jackson@ximian.com>
23064
23065         * icall.c: Clairfy out of sync error message. It is not always
23066         your corlib that is out of sync.
23067
23068 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
23069
23070         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
23071         properties when only the set accessor is overriden. Fixes #55874.
23072
23073 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
23074
23075         * assembly.c (mono_assembly_load_references): Make this thread safe.
23076         Fixes #56327.
23077
23078 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
23079
23080         * monosn.c: Add missing initialization calls.
23081
23082 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
23083
23084         * locales.c:
23085         ves_icall_System_Globalization_CultureInfo_construct_number_format
23086         Fix g_assert so it compiles on fussier compilers re int/ptr
23087         mismatch
23088
23089 2004-04-08  Dick Porter  <dick@ximian.com>
23090
23091         * socket-io.h:
23092         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
23093         53992.  Also rearrange the code so that the internal calls return
23094         an error value and exceptions are thrown from managed code.
23095
23096         * icall.c: Add type info to the socket icalls.
23097
23098 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23099
23100         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
23101         owes me a beer.
23102
23103 2004-04-07  Martin Baulig  <martin@ximian.com>
23104
23105         * class.c (mono_class_from_generic_parameter): Don't default
23106         `klass->parent' to `mono_defaults.object_type'.
23107
23108 2004-04-07  Martin Baulig  <martin@ximian.com>
23109
23110         * reflection.c (mono_reflection_initialize_generic_parameter): Set
23111         `param->pklass->reflection_info'.       
23112
23113 2004-04-07  Jackson Harper  <jackson@ximian.com>
23114
23115         * culture-info-tables.h: Fix date separator symbol.
23116         
23117 2004-04-07  Martin Baulig  <martin@ximian.com>
23118
23119         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
23120         from System.Type to System.MonoType.
23121
23122 2004-04-07  Martin Baulig  <martin@ximian.com>
23123
23124         * reflection.h
23125         (MonoReflectionGenericParam): Added `has_reference_type' and
23126         `has_value_type' fields.
23127
23128         * reflection.c (mono_image_get_generic_param_info): Encode the
23129         correct flags if we have the `class' or `struct' constraint.
23130
23131 2004-04-07  Martin Baulig  <martin@ximian.com>
23132
23133         * reflection.h
23134         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
23135
23136 2004-04-07  Jackson Harper  <jackson@ximian.com>
23137
23138         * appdomain.c: Revert extra patches, just wanted to bump the
23139         version number.
23140         
23141 2004-04-07  Jackson Harper  <jackson@ximian.com>
23142
23143         * Makefile.am: Add culture-info private headers.
23144         * icall.c: Add new icalls for contructing locales.
23145         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
23146         * locales.h: Declare new culture info construction methods.
23147         * object.h: Add new fields used to avoid the CultureMap to
23148         MonoCultureInfo.
23149         * culture-info.h: Definition of structs used in the culture info
23150         tables.
23151         * culture-info-tables.h: Autogenerated tables that contain culture
23152         info data. This file was generated with the locale-builder tool.
23153         * appdomain.c: Incement corlib version number.
23154         
23155 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
23156
23157         * appdomain.c: (mono_runtime_init) move mono_thread_init
23158         to before mono_object_new calls so critical sections
23159         are initialized before use.
23160
23161 2004-04-07  Martin Baulig  <martin@ximian.com>
23162
23163         * icall.c
23164         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
23165         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
23166         (ves_icall_MonoGenericParam_initialize): Removed.
23167         (monogenericparam_icalls): Removed.
23168         (generictypeparambuilder_icalls): Added new table for
23169         System.Reflection.Emit.GenericTypeParameterBuilder.
23170
23171         * reflection.c
23172         (mono_reflection_define_generic_parameter): Removed.
23173         (mono_reflection_initialize_generic_parameter): This is now called
23174         from GenericTypeParameterBuilder's .ctor.
23175
23176 2004-04-06  Martin Baulig  <martin@ximian.com>
23177
23178         * class.c (mono_class_init): Don't inflate nested classes in a
23179         generic instance.
23180         (mono_type_get_name_recurse): Include the generic arguments for
23181         generic instances and generic type declarations.
23182         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
23183         (_mono_class_get_instantiation_name): Removed.
23184         (mono_class_create_generic): Always use `gklass->name' as our name.
23185
23186         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
23187
23188         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
23189         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
23190         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
23191         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
23192         closed generic methods here.
23193
23194         * reflection.c
23195         (mono_reflection_generic_inst_get_nested_types): Removed.
23196         (inflate_mono_method): Copy the generic parameters from the
23197         MonoMethodHeader into out MonoGenericMethod.
23198
23199 2004-04-06  Martin Baulig  <martin@ximian.com>
23200
23201         * row-indexes.h
23202         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
23203
23204         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
23205
23206         * reflection.c (build_compressed_metadata): If we have any entries
23207         in the GenericParam, MethodSpec or GenericParamConstraint tables,
23208         set the header version to 1.1.
23209
23210 2004-04-06  Martin Baulig  <martin@ximian.com>
23211
23212         * class.c (mono_class_init): If we're a generic instance,
23213         initialize our nested classes, too.
23214         (_mono_class_get_instantiation_name): Deal with the new `!%d'
23215         suffix. 
23216
23217 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23218
23219         * process.c: quote the argument passed to the shell on windows.
23220
23221 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
23222
23223         * threads.c (mono_alloc_special_static_data): Allow this to be
23224         called during startup.
23225
23226 2004-04-02  Martin Baulig  <martin@ximian.com>
23227
23228         * icall.c
23229         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
23230
23231 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
23232
23233         * icall.c: Fix build.
23234
23235 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
23236
23237         * Makefile.am: Added security.c|h.
23238         * icall.c: Added icall for get_UserName;
23239         * security.c: New file for security related icalls. Added function
23240         get_UserName for System.Environment (fix #56144).
23241         * security.h: New. Header file for security.c
23242
23243 2004-04-02  Dick Porter  <dick@ximian.com>
23244
23245         * icall.c: Deleted the icalls that were obsoleted some time ago
23246         by the ICU string code, and which were mixed into the icall
23247         rearranging.  Fixes bug 55969.
23248
23249         * string-icalls.h: 
23250         * string-icalls.c: Deleted the code that those icalls reference.
23251
23252 2004-04-01  Martin Baulig  <martin@ximian.com>
23253
23254         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
23255
23256         * class.c (mono_class_from_generic_parameter): Don't set 
23257         TYPE_ATTRIBUTE_INTERFACE.
23258         (my_mono_class_from_generic_parameter): Likewise.
23259
23260 2004-04-01  Martin Baulig  <martin@ximian.com>
23261
23262         * loader.c (find_method): Added an optional `MonoClass *ic'
23263         argument to search in a specific interface.
23264         (mono_get_method_constrained): New public function.
23265
23266 2004-04-01  Martin Baulig  <martin@ximian.com>
23267
23268         * reflection.c (mono_image_get_generic_field_token): Use the
23269         `handleref' cache here.
23270
23271 2004-04-01  Martin Baulig  <martin@ximian.com>
23272
23273         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
23274
23275         * reflection.c (create_generic_typespec): Use the `typespec' hash
23276         here, not the `typeref' one.    
23277
23278 2004-04-01  Martin Baulig  <martin@ximian.com>
23279
23280         * class.c (mono_class_inflate_generic_type): Moved the
23281         functionality into a new static inflate_generic_type() which
23282         returns NULL if it didn't do anything.  Only increment the
23283         `mono_stats.inflated_type_count' if we actually inflated
23284         something.
23285         (mono_class_get_full): Check the classes type to see whether we
23286         need to inflate it; also inflate MONO_TYPE_(M)VAR.
23287
23288 2004-04-01  Jackson Harper  <jackson@ximian.com>
23289
23290         * reflection.c: Set culture for assembly references.
23291         
23292 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
23293
23294         * reflection.[ch], icall.[ch], Fix support for pinning variables.
23295
23296 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23297
23298         * assembly.c:
23299         (do_mono_assembly_open): the critical section also covers
23300         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
23301
23302 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23303
23304         * threads.c:
23305         (mono_manage_threads): abort the background threads when finishing.
23306         Fixes bug #47232.
23307
23308 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23309
23310         * gc.c: only close the done_event handle if there was no timeout.
23311         C-ified comments.
23312
23313 2004-03-30  Martin Baulig  <martin@ximian.com>
23314
23315         * icall.c (icall_entries): It's called "System.Activator", not
23316         "System.Activation".    
23317
23318 2004-03-30  Martin Baulig  <martin@ximian.com>
23319
23320         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
23321         (mono_class_create_from_typespec): Likewise.
23322
23323 2004-03-30  Martin Baulig  <martin@ximian.com>
23324
23325         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
23326         `has_ctor_constraint' and `initialized'.
23327
23328 2004-03-30  Martin Baulig  <martin@ximian.com>
23329
23330         * reflection.c (encode_new_constraint): New static function to add
23331         the constructor constraint attribute to a type parameter.
23332         (encode_constraints): Call encode_new_constraint() if necessary.
23333
23334         * reflection.h
23335         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
23336
23337         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
23338         
23339 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
23340
23341         * reflection.c, icall.c: add support for pinning variables. 
23342
23343 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
23344
23345         * marshal.c (mono_marshal_get_managed_wrapper):
23346         init bool local with zero rather than null.
23347
23348 2004-03-29  Martin Baulig  <martin@ximian.com>
23349
23350         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
23351         the "official" behavior here.
23352         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
23353
23354 2004-03-29  Martin Baulig  <martin@ximian.com>
23355
23356         * icall.c: Reflect latest API changes.
23357
23358 2004-03-29  Martin Baulig  <martin@ximian.com>
23359
23360         * loader.c (mono_get_method_from_token): Also call
23361         mono_metadata_load_generic_params () for abstract and interface
23362         methods; replace the type arguments in the method signature with
23363         the ones which are loaded from the metadata.
23364
23365 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
23366
23367         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
23368         of the lock is not the current thread. MS.NET don't do it, in spite of
23369         what the documentation says. See bug #56157.
23370
23371 2004-03-28  Martin Baulig  <martin@ximian.com>
23372
23373         * class.c (mono_class_init): Don't call init_properties() and
23374         init_events() for generic instances; set `prop->parent' when
23375         inflating properties.
23376
23377         * reflection.c (mono_generic_inst_get_object): Call
23378         `mono_class_init (ginst->klass)'.
23379         (mono_type_get_object): Only create a MonoGenericInst if your
23380         generic type is a TypeBuilder.
23381         (do_mono_reflection_bind_generic_parameters): Only set
23382         `ginst->is_dynamic' if our generic type is a TypeBuilder.
23383
23384 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
23385
23386         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
23387         Fixes #56091.
23388
23389 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23390
23391         * icall.c: added Kill_internal icall.
23392         * process.[ch]: added Kill_internal icall.
23393
23394 2004-03-25  Martin Baulig  <martin@ximian.com>
23395
23396         * class.h (MonoStats): Added `generic_instance_count',
23397         `inflated_method_count', `inflated_type_count' and
23398         `generics_metadata_size'.       
23399
23400 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23401
23402         * reflection.c: no warnings now.
23403
23404 2004-03-25  Martin Baulig  <martin@ximian.com>
23405
23406         * class.c (mono_class_get_full): New public function; does a
23407         mono_class_get(), but also takes a `MonoGenericContext *'.
23408
23409         * loader.c (mono_field_from_memberref): Renamed to
23410         `field_from_memberref', made static and added `MonoGenericContext *'
23411         argument.
23412         (mono_field_from_token): Added `MonoGenericInst *' argument.
23413         (method_from_memberef): Likewise.
23414         (mono_get_method_from_token): Likewise.
23415         (mono_get_method_full): New public function; does a
23416         mono_get_method(), but also takes a `MonoGenericContext *'.
23417
23418         * verify.c (mono_method_verify): Get the method's generic context
23419         and pass it to mono_field_from_token(), mono_get_method_full() and
23420         mono_class_get_full().
23421
23422 2004-03-25  Martin Baulig  <martin@ximian.com>
23423
23424         * class.c (mono_class_inflate_generic_type): Take a
23425         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
23426         `MonoGenericMethod *'.
23427
23428 2004-03-25  Martin Baulig  <martin@ximian.com>
23429
23430         * loader.h (MonoMethodInflated): Store the MonoGenericContext
23431         instead of the MonoGenericMethod here.
23432
23433 2004-03-25  Martin Baulig  <martin@ximian.com>
23434
23435         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
23436         each time we create a new MonoGenericInst, we also create a new
23437         context which points back to us.
23438
23439         * class.c (inflate_method): Use `ginst->context' instead of
23440         creating a new context.
23441
23442         * loader.c (method_from_memberref): Use
23443         `klass->generic_inst->context' instead of creating a new context.
23444
23445 2004-03-25  Martin Baulig  <martin@ximian.com>
23446
23447         * class.h (MonoGenericContext): New struct.
23448         (MonoGenericMethod): Removed `generic_inst'.
23449
23450         * class.c (mono_class_inflate_generic_method): Take a
23451         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
23452
23453 2004-03-25  Martin Baulig  <martin@ximian.com>
23454
23455         * loader.h (MonoMethodInflated): New typedef.
23456
23457         * metadata.h (MonoMethodSignature): Removed `gen_method', make
23458         `generic_param_count' consume just 30 bits, added `is_inflated'
23459         and `has_type_parameters' flags (one bit each).
23460
23461         * class.c (mono_class_inflate_generic_method): Create a
23462         MonoMethodInflated instead of a MonoMethodNormal and set
23463         `is_inflated' in the method signature.
23464
23465         * class.h (MonoGenericMethod): Removed `generic_method'.
23466
23467 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
23468
23469         * image.c: Make sure the name of a MonoImage is always an absolute path.
23470           This fixes bug #54415.
23471
23472 2004-03-24  Martin Baulig  <martin@ximian.com>
23473
23474         * class.c (mono_class_setup_vtable): If we're a generic instance,
23475         use our generic type's vtable size.
23476
23477 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
23478
23479         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
23480         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
23481         problems.
23482
23483 2004-03-23  Martin Baulig  <martin@ximian.com>
23484
23485         * class.h (MonoDynamicGenericInst): Added `int count_events' and
23486         `MonoEvent *events'.
23487
23488         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
23489         (typebuilder_icalls): Added "get_event_info"; calls
23490         mono_reflection_event_builder_get_event_info(). 
23491
23492         * reflection.c (mono_reflection_generic_inst_initialize): Added
23493         `MonoArray *events'.
23494         (mono_reflection_event_builder_get_event_info): New function.
23495
23496 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
23497
23498         * object.h: add mono_type_initialization_init
23499
23500         * object.c (mono_runtime_class_init): 
23501         implement class constructor synchronization rules
23502         to cope with threading issues.  
23503         add mono_type_initialization_init
23504
23505         * appdomain.c (mono_runtime_init): call 
23506         mono_type_initialization_init
23507
23508         * class.h: removing initializing field from MonoVTable
23509
23510 2004-03-23  Martin Baulig  <martin@ximian.com>
23511
23512         * class.c (my_mono_class_from_generic_parameter): Use
23513         `param->name' if it's not NULL. 
23514
23515 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
23516
23517         * class.c: do not insert non-virtual methods in the vtable.
23518         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
23519         that means the method is non-virtual. This never would have
23520         happened before.
23521
23522 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
23523
23524         * profiler.c: Added lock for accessing coverage_hash.
23525
23526 2004-03-22  Martin Baulig  <martin@ximian.com>
23527
23528         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
23529         `method->method->signature->generic_param_count != 0' to make it
23530         work for interface methods.
23531
23532 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23533
23534         * process.c: quote the string passed to the shell using g_shell_quote.
23535
23536 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23537
23538         * threads.c:
23539         (mono_threads_manage): don't remove the finalizer thread and self
23540         from the threads hash table so that mono_thread_manage can be called
23541         more than once.
23542
23543 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23544
23545         * process.c: quote the arguments when UseShellExecute is true. Fixes
23546         bug #55790.
23547
23548 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23549
23550         * threads.c: set mono_thread_detach as a cleanup routine for every
23551         thread. This way it's always executed upon thread termination, either
23552         aborted or finished normally. No more xsp hangs!
23553
23554 2004-03-17  Martin Baulig  <martin@ximian.com>
23555
23556         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
23557         `int count_nested' and a `MonoType **nested'.
23558
23559         * reflection.c (mono_reflection_bind_generic_parameters): Moved
23560         most of the functionality into a new static
23561         do_mono_reflection_bind_generic_parameters() and don't take a
23562         `MonoType *nested_in' argument any more.  Don't compute nested
23563         types here.
23564         (mono_reflection_generic_inst_get_nested_types): New public method
23565         to get nested types.
23566
23567         * class.c (mono_class_create_generic): Set `klass->nested_in' if
23568         we're a nested class.
23569
23570         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
23571         mono_reflection_generic_inst_get_nested_types() to compute the
23572         nested types.
23573
23574 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
23575
23576         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
23577         descriptive error message under windows.
23578         
23579 2004-03-17  Martin Baulig  <martin@ximian.com>
23580
23581         * class.c (dup_type): Added `const MonoType *original' argument;
23582         copy the attrs from the original type.
23583
23584 2004-03-17  Martin Baulig  <martin@ximian.com>
23585
23586         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
23587         `m->generic_inst_cache' here.
23588
23589 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
23590
23591         * exception.h exception.c: Add stack_overflow_exception.
23592
23593 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23594
23595         * threadpool.c:
23596         (overlapped_callback): call SetEvent *after* invoking the callback.
23597         No need to call CloseHandle.
23598
23599 2004-03-16  Martin Baulig  <martin@ximian.com>
23600
23601         * reflection.c (mono_image_get_fieldref_token): Take a
23602         `MonoReflectionField *' instead of a `MonoClassField *' and a
23603         `MonoClass *'; store the `MonoReflectionField *' in the hash.
23604
23605 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23606
23607         * appdomain.c: don't add the culture to the filename we're looking for
23608         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
23609
23610 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23611
23612         * locales.c: don't ignore symbols when doing case insensitive compares.
23613         Thanks Dick! Fixes bug #54046.
23614
23615         * threads.c: surround 'threads' usage with enter/leave in
23616         mono_thread_manage.
23617
23618 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
23619
23620         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
23621         implicitly marshalled as [Out]. Fixes #55450.
23622
23623         (mono_marshal_get_runtime_invoke): Zero out the result if there is
23624         an exception.
23625
23626 2004-03-16  Martin Baulig  <martin@ximian.com>
23627
23628         * class.c (mono_class_from_generic_parameter): Use the actual
23629         parameter name. 
23630
23631 2004-03-16  Martin Baulig  <martin@ximian.com>
23632
23633         * reflection.c (type_get_signature_size): New static function.
23634         Compues the size of the type in a method signature.
23635         (method_get_signature_size): New static function; calls
23636         type_get_signature_size() to compute the actual size of the
23637         method's signature.
23638         (method_encode_signature): Use method_get_signature_size() to get
23639         the signature's size rather than using `nparams * 10'.
23640
23641 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23642
23643         * file-io.h: define here WapiOverlapped on windows. I don't want the
23644         regular OVERLAPPED one.
23645
23646         * file-io.c:
23647         * threadpool.c: somehow, BindIoCompletionCallback is not found.
23648         Disabling AIO on windows.
23649
23650 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23651
23652         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
23653         bug #55385.
23654
23655 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23656
23657         * appdomain.c: upgraded corlib version.
23658
23659         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
23660         and BeginWrite. Allow opening files for asynchrnous operations.
23661
23662         * file-io.h: new struct that maps FileStreamAsyncResult.
23663         * icall.c: added new icalls.
23664         * process.[ch]: support setting child process environment variables
23665         and use the SHELL or COMSPEC when UseShellExecute is true.
23666
23667         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
23668         callback for async. IO is here and also BindHandle.
23669
23670         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
23671         from here.
23672
23673 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
23674
23675         * reflection.c (create_custom_attr): Allow len == 0.
23676
23677         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
23678         computation on big-endian machines.
23679
23680 2004-03-13  Martin Baulig  <martin@ximian.com>
23681
23682         * class.h (MonoGenericInst): Added `int count_ifaces'.
23683
23684         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
23685         `ginst->count_ifaces' instead `klass->interface_count' since we
23686         may get called before the vtable is created.
23687
23688         * loader.c (mono_method_get_param_names): If we're a generic
23689         instance, return and don't initialize the class.
23690
23691         * reflection.c (mono_reflection_setup_generic_class): Don't call
23692         ensure_runtime_vtable().
23693         (mono_reflection_bind_generic_parameters): Set
23694         `ginst->count_ifaces'.
23695
23696 2004-03-11  Jackson Harper <jackson@ximian.com>
23697
23698         * icall.c:
23699         * unicode.c:
23700         * unicode.h: Remove unused System.Char icalls.
23701         
23702 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
23703
23704         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
23705         code when we P/Invoke the first library in Windows.Forms, instead
23706         of when we first open the assembly.
23707
23708         * assembly.c: Drop the lookup from here.
23709
23710 2004-03-10  Martin Baulig  <martin@ximian.com>
23711
23712         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
23713         class for properties, fields and events.  Finally fixes #54945.
23714
23715 2004-03-10  Martin Baulig  <martin@ximian.com>
23716
23717         * metadata.c (mono_metadata_class_equal): New static function;
23718         checks whether two generic instances or two generic parameters are
23719         equal.
23720         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
23721         compare classes.        
23722
23723 2004-03-10  Martin Baulig  <martin@ximian.com>
23724
23725         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
23726
23727         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
23728         argument and write it into the `reflection_info' field.
23729
23730         * icall.c
23731         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
23732         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
23733
23734 2004-03-09  Jackson Harper  <jackson@ximian.com>
23735
23736         * char-conversions.h: use 8 bits for numeric data its all we need
23737         * icall.c: numeric data is only 8 bits now.
23738
23739 2004-03-09  Martin Baulig  <martin@ximian.com>
23740
23741         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
23742
23743         * class.c (init_properties, init_events): Initialize the new
23744         `parent' field.
23745
23746         * reflection.c (typebuilder_setup_properties): Likewise.
23747         (typebuilder_setup_events): Likewise.
23748
23749         * reflection.h (MonoEventInfo): Replaced `parent with
23750         `declaring_type' and `reflected_type'.
23751
23752         * icall.c (ves_icall_get_property_info): Distinguish between
23753         declaring and reflected type.
23754         (ves_icall_get_event_info): Likewise.
23755
23756 2004-03-09  Martin Baulig  <martin@ximian.com>
23757
23758         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
23759         (ves_icall_Type_GetField): Correctly set field->klass.
23760
23761 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
23762
23763         * loader.h: Fix warning.
23764
23765 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
23766
23767         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
23768         library routine if present.  Notice that it will still continue
23769         executing even if its missing, for those working on the Gtk#
23770         edition of Windows.Forms.
23771
23772         * assembly.c (do_mono_assembly_open): If loading the
23773         System.Windows.Forms call mono_loader_wini_init.
23774
23775 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
23776
23777         * class.h: Added MonoRemoteClass struct.
23778         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
23779         function for MonoStrings.
23780         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
23781         Added internal call for getting the proxy type.
23782         * marshal.c: Get the type of transparent proxies from its remote_class.
23783         Added methods that generate the IL for type checks and casts:
23784         mono_marshal_get_isinst, mono_marshal_get_castclass, 
23785         mono_marshal_get_proxy_cancast.
23786         * marshal.h: Declaration of the previous new methods.
23787         * object.c: Added new moethods for creating and updating MonoRemoteClass
23788         instances: mono_remote_class, mono_upgrade_remote_class, 
23789         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
23790         * verify.c: FIx transparent_proxy_fields layout.
23791         * appdomain.c: Bump corlib version.
23792
23793 2004-03-04  Jackson Harper  <jackson@ximian.com>
23794
23795         * icall.c: Add icall to access char conversion tables.
23796         * char-conversions.h: Character conversion tables.
23797         * Makefile.am: Add char-conversions.h private header file.
23798         
23799 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
23800
23801         * appdomain.c (unload_thread_main): Increase unloading timeout to
23802         10 sec as a temporary workaround for Nant problems.
23803
23804 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
23805
23806         * gc.c: Add checks for GC_enable and GC_disable.
23807
23808         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
23809         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
23810         (bug #54988).
23811         
23812 2004-02-27  Martin Baulig  <martin@ximian.com>
23813
23814         * reflection.c (mono_reflection_bind_generic_parameters): Take a
23815         `MonoReflectionType *' instead of a `MonoType *'.
23816
23817 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
23818
23819         * gc.c (run_finalize): Avoid finalizing the object representing the
23820         finalizer thread.
23821         (finalizer_thread): Fix warning.
23822
23823 2004-02-25  Martin Baulig  <martin@ximian.com>
23824
23825         * class.c (_mono_class_get_instantiation_name): Added `int offset'
23826         argument for nested types.
23827         (mono_class_create_generic): Added support for nested generictypes.
23828
23829         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
23830         `GList *nested'.
23831
23832         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
23833
23834         * reflection.c (method_encode_signature): Increase the minimum
23835         value of `size' from 10 to 11.
23836         (mono_reflection_bind_generic_parameters): Take `int type_argc'
23837         and `MonoType **types' arguments instead of the `MonoArray
23838         *types'; added `MonoType *nested_in'.  Recursively instantiate
23839         nested classes. 
23840
23841 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
23842
23843         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
23844         stack_overflow_ex members which are used by exception handling.
23845
23846         * appdomain.c (mono_runtime_init): Initialize the new members.
23847
23848         * gc.c (mono_gc_enable): New helper function.
23849         * gc.c (mono_gc_disable): New helper function.
23850
23851 2004-02-23  Martin Baulig  <martin@ximian.com>
23852
23853         * icall.c: I must have been really stupid - make it actually work
23854         this time ;-)
23855
23856 2004-02-23  Martin Baulig  <martin@ximian.com>
23857
23858         * loader.c (method_from_memberref): Only inflate the method if
23859         it's in another klass.
23860
23861 2004-02-23  Martin Baulig  <martin@ximian.com>
23862
23863         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
23864         (mono_class_init): If we're a generic instance and an interface,
23865         compute `class->interface_id'; also create `class->interfaces'
23866         here and inflate them.
23867
23868         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
23869         `ginst->is_open'.
23870         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
23871
23872         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
23873
23874 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
23875
23876         * reflection.c (method_encode_code): Improved the error message
23877         generated by the exception.
23878
23879 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23880
23881         * icall.c: Martin did not do what he said in the ChangeLog for
23882         2004-02-18, but put back the changes for properties and events.
23883         Commenting those changes out again and adding comment to bug #54518.
23884         
23885         * process.c: removed warning.
23886
23887 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
23888
23889         * marshal.c (emit_struct_conv): Print an error message instead of
23890         asserting when a type does not have the StructLayout attribute.
23891
23892 2004-02-20  Martin Baulig  <martin@ximian.com>
23893
23894         * reflection.c (mono_type_get_object): Also use the cache for
23895         generic instances.
23896         (mono_reflection_bind_generic_parameters): Always compute
23897         `ginst->ifaces'.        
23898
23899 2004-02-20  Martin Baulig  <martin@ximian.com>
23900
23901         * class.h (MonoGenericMethod): Removed `klass'.
23902
23903         * class.c (mono_class_inflate_generic_method): Added `MonoClass
23904         *klass' argument.
23905
23906 2004-02-20  Martin Baulig  <martin@ximian.com>
23907
23908         * reflection.c (method_encode_methodspec): Actually use the
23909         uninflated signature for the memberref.
23910
23911 2004-02-20  Martin Baulig  <martin@ximian.com>
23912
23913         * class.h (MonoGenericMethod): Removed `declaring'.
23914
23915         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
23916         is NULL, compute it here.
23917
23918 2004-02-20  Martin Baulig  <martin@ximian.com>
23919
23920         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
23921
23922         * metadata.c (mono_metadata_generic_inst_hash): New method.
23923         (mono_metadata_generic_inst_equal): New method.
23924
23925         * reflection.c (mono_reflection_bind_generic_parameters): Use the
23926         `klass->image->generic_inst_cache' cache to avoid creating
23927         duplicate MonoGenericInst's.
23928
23929         * class.c (mono_class_inflate_generic_type): Use the cache.
23930
23931 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
23932
23933         * object.c: fixed gc descriptor calculation for embedded valuetypes.
23934
23935 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23936
23937         * icall.c: added Socket.WSAIoctl icall.
23938
23939         * socket-io.[ch]: implemented
23940         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
23941
23942 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
23943
23944         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
23945
23946 2004-02-18  Urs C Muff  <umuff@quark.com>
23947
23948         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
23949         this work on PPC and other big-endian architectures.
23950
23951         * debug-mono-symfile.h: Prepended the names of all the `guint32'
23952         fields with an underscore to make sure they're only accessed by
23953         the read32() macro.
23954
23955 2004-02-18  Martin Baulig  <martin@ximian.com>
23956
23957         * icall.c: Put the klass->refclass changes back for methods and
23958         fields, but not for properties and events.  We're currently not
23959         distinguishing between DeclaringType and ReflectedType for
23960         properties and events, that's what caused the regressions.
23961
23962 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23963
23964         * object.c:
23965         (mono_async_result_new): the handle can be NULL.
23966
23967         * threadpool.c: Use an event instead of a semaphore, don't initialize
23968         it until needed. This saves quite a few semaphores from being created
23969         when using the threadpool.
23970
23971 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
23972
23973         * object.c (mono_string_is_interned_lookup): Fix interning of long
23974         strings. Fixes #54473.
23975
23976         * domain.c (ldstr_equal): Optimize if the two strings are equal.
23977
23978         * icall.c: Revert the klass->refclass changes since they introduce
23979         regressions (bug #54518).
23980
23981 2004-02-18  Martin Baulig  <martin@ximian.com>
23982
23983         * class.c (mono_class_init): If we're a generic instance and don't
23984         come from a TypeBuilder, inflate our members here.
23985         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
23986         (mono_class_create_generic): New public method.
23987         (mono_class_initialize_generic): Removed.
23988         (get_instantiation_name): Renamed to
23989         _mono_class_get_instantiation_name() and made it public.
23990
23991 2004-02-18  Martin Baulig  <martin@ximian.com>
23992
23993         * class.c (mono_class_inflate_generic_type): Clear the new
23994         instance's `nginst->klass' when inflating a generic instance.
23995         (mono_class_is_subclass_of): Added (basic) support for generic
23996         instances.
23997
23998 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
23999
24000         * appdomain.h, domain.c: use a MonoCodeManager instead of a
24001         MonoMempool to hold compiled native code.
24002
24003 2004-02-17  Martin Baulig  <martin@ximian.com>
24004
24005         * class.h (MonoDynamicGenericInst): Added `count_properties' and
24006         `properties'.
24007
24008         * reflection.c (mono_reflection_generic_inst_initialize): Added
24009         `MonoArray *properties' argument.
24010
24011         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
24012
24013 2004-02-17  Martin Baulig  <martin@ximian.com>
24014
24015         * icall.c (ves_icall_Type_GetFields): Renamed to
24016         ves_icall_Type_GetFields_internal() and added a
24017         `MonoReflectionType *rtype' argument; pass it to
24018         mono_field_get_object() to set the field's "reflected" type.
24019         (ves_icall_Type_GetConstructors): Likewise.
24020         (ves_icall_Type_GetEvents): Likewise.
24021         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
24022         argument; pass it to mono_method_get_object() to set the method's
24023         "reflected" type.       
24024
24025 2004-02-17  Martin Baulig  <martin@ximian.com>
24026
24027         * class.h (MonoDynamicGenericInst): New type.
24028         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
24029
24030         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
24031         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
24032         (ves_icall_MonoGenericInst_GetFields): New interncall.
24033
24034         * class.c (mono_class_from_generic): Don't call
24035         mono_class_initialize_generic() if this is a dynamic instance;
24036         ie. it's being created from a TypeBuilder.
24037         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
24038         `class->byval_arg.type'.
24039
24040         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
24041         to `inflate_method' and made static.
24042         (mono_reflection_inflate_field): Removed.
24043         (mono_reflection_generic_inst_initialize): New public method.
24044
24045         * reflection.h (MonoReflectionGenericInst): Removed `methods',
24046         `ctors' and `fields'; added `initialized'.
24047
24048 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
24049
24050         * debug-helpers.c (mono_method_full_name): Fix output for empty
24051         namespaces.
24052
24053 2004-02-12  Martin Baulig  <martin@ximian.com>
24054
24055         * class.h (MonoClassField): Added `MonoType *generic_type'.
24056
24057         * reflection.c (mono_image_get_fieldref_token): Added support for
24058         instantiated generic types.
24059         (field_encode_inflated_field): Removed.
24060         (mono_image_get_inflated_field_token): Removed.
24061         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
24062
24063         * reflection.h (MonoReflectionInflatedField): Removed.
24064
24065 2004-02-12  Martin Baulig  <martin@ximian.com>
24066
24067         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
24068         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
24069
24070         * reflection.c (mono_image_get_methodspec_token): Take a
24071         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
24072         (mono_image_create_token): Check whether we have a
24073         `method->signature->gen_method' and call
24074         mono_image_get_methodspec_token() if appropriate.
24075         (inflated_method_get_object): Removed.
24076         (mono_reflection_bind_generic_method_parameters): Return a
24077         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
24078         (mono_reflection_inflate_method_or_ctor): Likewise.
24079
24080         * reflection.h (MonoReflectionInflatedMethod): Removed.
24081
24082 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
24083
24084         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
24085         for custom valuetype marshalling.
24086
24087         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
24088
24089 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24090
24091         * icall.c: fixed WSAGetLastError_internal name.
24092
24093 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
24094
24095         * threads.c (mono_thread_attach): Allow this to be called multiple
24096         times for a thread.
24097         
24098         * threads.c (build_wait_tids): Do not wait for ourselves.
24099
24100         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
24101         appdomain list is empty.
24102
24103         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
24104         memory returned by mono_string_builder_to_utf16, since it points into
24105         managed memory. Thanks to Bernie Solomon for noticing this.
24106
24107         * icall.c: Add AppDomainSetup icalls.
24108
24109         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
24110
24111         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
24112         types.
24113
24114         * reflection.c (reflection_methodbuilder_to_mono_method): Save
24115         custom attributes to the method_aux struct. Also fix array indexes etc.
24116
24117         * loader.c (mono_method_get_param_names): Make dynamic case work again.
24118         
24119 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
24120
24121         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
24122         (both static and runtime) and reduce startup time.
24123
24124 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
24125
24126         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
24127         AsAny marshalling conversion instead of crashing.
24128
24129         * marshal.c: Fix warnings.
24130
24131 2004-02-09  Martin Baulig  <martin@ximian.com>
24132
24133         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
24134
24135         * reflection.h (MonoReflectionInflatedMethod): Removed the
24136         `declaring' field, it's now in the unmanaged MonoGenericMethod.
24137
24138         * reflection.c (method_encode_methodspec): Removed the `method'
24139         argument; we get it from `gmethod->declaring'.
24140         (inflated_method_get_object): Removed the `declaring' argument.
24141
24142 2004-02-09  Martin Baulig  <martin@ximian.com>
24143
24144         * class.h (MonoGenericMethod): New type.
24145         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
24146         `generic_method'.
24147
24148         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
24149         a `MonoGenericMethod *gen_method' one.
24150
24151         * class.c (mono_class_inflate_generic_type): Take an additional
24152         `MonoGenericMethod * argument.  This is only non-NULL if we're
24153         inflating types for a generic method.   
24154         (mono_class_inflate_generic_signature): Renamed to
24155         inflate_generic_signature() and made static; take a
24156         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
24157         (inflate_generic_header): Take a `MonoGenericMethod *' argument
24158         instead of a `MonoGenericInst *' one.
24159         (mono_class_inflate_generic_method): Likewise.
24160
24161         * reflection.c (encode_generic_method_sig): Take a
24162         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
24163         (method_encode_methodspec): Likewise.
24164         (inflated_method_get_object): Likewise. 
24165
24166         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
24167         field with a `MonoGenericMethod *gmethod' one.  
24168
24169 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
24170
24171         * class.h (mono_class_has_parent): add parens to expansion
24172         so you can ! this.
24173
24174 2004-02-08  Martin Baulig  <martin@ximian.com>
24175
24176         * image.h (MonoImage): Removed `generics_cache'.
24177
24178         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
24179         instead of a `MonoType *' argument; removed the `inflate_methods'
24180         argument.  Don't inflate methods here.
24181
24182         * loader.c (find_method): If it's a generic instance, call
24183         mono_class_init() on the `sclass->generic_inst->generic_type'.
24184
24185         * metadata.c (mono_type_size): Make this work on uninitialized
24186         generic instances; call it on the `ginst->generic_type's class.
24187
24188         * reflection.c (mono_reflection_bind_generic_parameters): Call
24189         mono_class_from_generic() to create the `ginst->klass'.
24190
24191 2004-02-08  Martin Baulig  <martin@ximian.com>
24192
24193         * class.h (MonoClass): Changed type of `generic_inst' from
24194         `MonoType *' to `MonoGenericInst *'.
24195
24196 2004-02-08  Martin Baulig  <martin@ximian.com>
24197
24198         * icall.c (ves_icall_Type_BindGenericParameters): Just call
24199         mono_type_get_object(), this is now creating a `MonoGenericInst'
24200         for MONO_TYPE_GENERICINST.
24201         (ves_icall_MonoGenericInst_GetParentType): Likewise.
24202         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
24203
24204         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
24205         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
24206         (inflated_method_get_object): Added `MonoClass *refclass' argument.
24207         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
24208         and reflected type.
24209
24210         * reflection.h (MonoReflectionInflatedMethod): Removed
24211         `declaring_type' and `reflected_type'.
24212
24213 2004-02-08  Martin Baulig  <martin@ximian.com>
24214
24215         * class.h (MonoGenericInst): Added `MonoType *parent' and
24216         `MonoType **ifaces'.
24217
24218         * reflection.h (MonoReflectionGenericInst): Removed `klass',
24219         `parent' and `interfaces'.
24220
24221         * reflection.c (mono_reflection_bind_generic_parameters): Take a
24222         `MonoType *' argument and return a `MonoType *'.
24223
24224         * icall.c
24225         (ves_icall_MonoGenericInst_GetParentType): New interncall.
24226         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
24227
24228 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
24229
24230         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
24231         valuetype marshalling.
24232
24233 2004-02-06  Martin Baulig  <martin@ximian.com>
24234
24235         * class.c
24236         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
24237         (my_mono_class_from_generic_parameter): Likewise.
24238
24239 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
24240
24241         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
24242         contents of the symbol files lazily.
24243
24244         * object.h (MonoThread): Add 'name' and 'name_len' fields.
24245
24246         * threads.h threads.c icall.c: New icalls for getting and setting the
24247         threads name.
24248
24249 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
24250
24251         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
24252         Raise an exception when the domain is not found.
24253
24254 2004-02-03  Martin Baulig  <martin@ximian.com>
24255
24256         * reflection.c (mono_image_get_methodspec_token): Use the
24257         uninflated signature; fixes gen-33.
24258
24259 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
24260
24261         * gc.c threads.c: Make the finalizer thread a normal managed thread so
24262         the finalizer code can use thread functionality.
24263
24264         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
24265         the finalizer thread.
24266
24267         * threads.c: Make some functions more robust.
24268
24269         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
24270
24271         * metadata.h: Add new marshalling conventions.
24272
24273         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
24274         stringbuilder marshalling. Fixes #53700.
24275
24276         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
24277
24278         * reflection.c (mono_image_get_type_info): Save declarative security
24279         info.
24280
24281         * reflection.c (mono_image_get_field_info): Handle uninitialized 
24282         unmanaged fields as well.
24283
24284         * appdomain.c: Bump corlib version.
24285
24286 2004-02-01  Martin Baulig  <martin@ximian.com>
24287
24288         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
24289         method type arguments.  
24290
24291 2004-01-30  Duncan Mak  <duncan@ximian.com>
24292
24293         * marshal.h: Add prototype for
24294         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
24295         and
24296         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
24297         fix the build.
24298
24299 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
24300
24301         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
24302         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
24303
24304 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
24305
24306         * marshal.c (mono_marshal_get_native_wrapper): Add support for
24307         custom marshalling of valuetypes.
24308
24309         * marshal.c: Fix some warnings.
24310
24311 2004-01-29  Martin Baulig  <martin@ximian.com>
24312
24313         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
24314         for generic method parameters.
24315
24316         * reflection.c (method_encode_methodspec): Write the uninflated
24317         signature into the methodspec table.
24318         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
24319         is always the uninflated method.
24320         (reflection_methodbuilder_to_mono_method): Copy the generic
24321         parameters from the MethodBuilder into `header->gen_params'.
24322
24323 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
24324
24325         * class.c (mono_class_from_generic_parameter): Fix warning.
24326
24327 2004-01-27  Martin Baulig  <martin@ximian.com>
24328
24329         * class.c (mono_class_from_generic_parameter): Don't create
24330         `klass->methods' here.  
24331
24332 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
24333
24334         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
24335         extension since it does not work with libraries named lib<FOO>.dll.so.
24336
24337 2004-01-25  Martin Baulig  <martin@ximian.com>
24338
24339         * class.c (mono_class_inflate_generic_type): Added support for
24340         MONO_TYPE_GENERICINST.
24341
24342         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
24343         inflate methods on open constructed types.      
24344
24345 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24346
24347         * object.c: fire ProcessExit event in the root AppDomain after running
24348         Main. Fixes bug #53299.
24349
24350 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
24351
24352         * socket-io.c: include the new socket-wrappers.h header.
24353         Use the wrappers instead of the unix socket functions to make the code
24354         more clear.
24355
24356 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
24357
24358         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
24359
24360         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
24361         Fixes #22532.
24362
24363 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
24364
24365         * reflection.c (mono_image_create_pefile): Handle the case when the
24366         entry point is not a MethodBuilder.
24367
24368         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
24369         field to ReflectionMethod since it is not allways a builder.
24370
24371         * reflection.c (type_get_fully_qualified_name): New helper function to
24372         return the fully qualified name of a type.
24373
24374         * reflection.c (encode_marshal_blob): Always emit the fully qualified
24375         type name for custom marshallers.
24376
24377         * reflection.c (mono_marshal_spec_from_builder): Ditto.
24378
24379         * class.c (mono_class_setup_vtable): If a parent class already 
24380         implements an interface, use the implementing methods from that class.
24381         Fixes #53148.
24382
24383 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24384
24385         * threadpool.c: just return instead of ExitThread to allow for thread
24386         clean up earlier.
24387
24388 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
24389
24390         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
24391         when closing resource modules.
24392
24393         * reflection.c (mono_image_create_pefile): Handle the case when the
24394         entry point is not a MethodBuilder.
24395
24396         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
24397         field to ReflectionMethod since it is not allways a builder.
24398
24399 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
24400
24401         * marshal.c (mono_marshal_get_managed_wrapper): 
24402         mono_marshal_alloc takes native int so CONV_I
24403         the arg for 64bits.
24404
24405 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
24406
24407         * reflection.c (fixup_cattrs): New function to fixup the methoddef
24408         tokens in the cattr table. Fixes #53108.
24409
24410 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24411
24412         * loader.c: don't trim ".dll" before looking up in the config file.
24413         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
24414
24415 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
24416
24417         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
24418         Return the module which contains the resource as well.
24419         (ves_icall_System_Reflection_Module_Close): New icall.
24420
24421         * appdomain.c: Bump corlib version number.
24422
24423         * image.c (mono_image_addref): New public function.
24424
24425         * assembly.c: Call mono_image_addref.
24426
24427         * reflection.c (mono_module_get_object): Increase reference count of 
24428         the image.
24429
24430         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
24431         Fixes #22532.
24432
24433         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
24434         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
24435         proper exceptions on DllImport problems.
24436
24437 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
24438
24439         * class.c, metadata.c: eliminate CSIZE macro.
24440
24441 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
24442
24443         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
24444         * object.h: Added async_callback field in MonoAsyncResult.
24445         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
24446         * verify.c: Added async_callback in MonoAsyncResult layout.
24447
24448 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
24449
24450         * reflection.c (mono_reflection_get_custom_attrs): Add support
24451         for Modules.
24452
24453 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
24454
24455         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
24456         marshalling.
24457         (mono_marshal_method_from_wrapper): Add null pointer check.
24458
24459 2004-01-16  Martin Baulig  <martin@ximian.com>
24460
24461         * debug-mono-symfile.h: Set version number to 36 and reflect
24462         latest symbol writer changes.
24463
24464 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
24465
24466         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
24467         multi-dimensional arrays.
24468         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
24469         (mono_class_from_mono_type): Use bounded_array_class_get.
24470         
24471         * class.c (mono_bounded_array_class_get): New function which takes
24472         a 'bounded' bool argument to distinguish vectors from one dimensional
24473         arrays.
24474
24475         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
24476         bounded_array_class_get if the array has bounds.
24477
24478         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
24479         Search modules loaded using AssemblyBuilder:AddModule as well.
24480
24481 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24482
24483         * appdomain.c: increased corlib version.
24484         * filewatcher.c: removed g_print.
24485         * icall.c:
24486         (get_property_info): only allocate what is actually requested.
24487         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
24488
24489 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24490
24491         * Makefile.am: added filewatcher.[ch]
24492         * filewatcher.[ch]: FileSystemWatcher runtime support.
24493         * icall.c: added new FSW icalls.
24494
24495 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
24496
24497         * string-icalls.c: fix stringbuilder regression as suggested by
24498         Iain McCoy <iain@mccoy.id.au>.
24499
24500 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
24501
24502         * process.c (process_read_stringtable_block): Recognize '007f' as
24503         a language neutral stringtable block.
24504
24505 2004-01-12  Patrik Torstensson
24506
24507         * object.h (MonoStringBuilder) : Changed layout to support our
24508         new stringbuilder class.
24509         * marshal.c: Change marshalling to support the new layout of 
24510         string builder.
24511         * appdomain.c: increased version number because new layout of
24512         string builder.
24513
24514 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
24515
24516         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
24517         assembly name as an string instead of an AssemblyName, since it is
24518         easier to extract info from it.
24519
24520         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
24521         the culture subdirectories too. Fixes #52231.
24522
24523 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24524
24525         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
24526         It takes 2 new parameters with an optional name for the method to look
24527         for and case ignoring info.
24528
24529         * threadpool.c: removed unused variable.
24530
24531 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24532
24533         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
24534         It takes 2 new parameters with an optional name for the property to look
24535         for and case ignoring info.
24536         Fixes bug #52753.
24537
24538 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
24539
24540         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
24541         Fix #52451.
24542
24543 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24544
24545         * appdomain.c:
24546         * assembly.c: escape the uri before passing it to g_filename_from_uri.
24547         Fixes bug #52630.
24548
24549 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
24550
24551         * reflection.c: Add support for more than one unmanaged resource.
24552
24553         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
24554         in field->def_value, as done in all other cases.
24555
24556         * reflection.c (mono_reflection_get_custom_attrs): Add support for
24557         TypeBuilders.
24558
24559         * reflection.c (mono_reflection_create_runtime_class): Remove 
24560         errorneous assignment to klass->element_class, since it is already
24561         done in mono_reflection_setup_internal_class.
24562
24563 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24564
24565         * gc.c: added missing LeaveCriticalSection.
24566         * icall.c: indented a couple of lines.
24567         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
24568         if we call EndInvoke inside a callback. Fixes bug #52601.
24569
24570 2004-01-07  Martin Baulig  <martin@ximian.com>
24571
24572         * mono-debug-debugger.h
24573         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
24574
24575 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
24576
24577         * appdomain.c: Use messages in NotImplementedException.
24578
24579         * exception.c (mono_get_exception_not_implemented): Now this takes
24580         a message argument.
24581
24582         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
24583         exception instead of g_asserting an aborting when something is not
24584         implemented.
24585
24586         Add some inline docs.
24587
24588 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
24589
24590         * reflection.h: Update after changes to object layout.
24591
24592         * reflection.c: Implement saving of unmanaged aka win32 resources.
24593
24594         * appdomain.c: Bump version number.
24595
24596         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
24597         Handle missing domains gracefully.
24598
24599 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
24600
24601         * file-io.c : On Windows, there are much more invalid_path_chars.
24602
24603 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
24604
24605         * class.h, object.c: prepare for GetType () speedup.
24606
24607 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
24608
24609         * profiler.c: workaround for --profile null reference exception on
24610           cygwin. Patch by Patrik Torstensson.
24611
24612 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
24613
24614         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
24615         make work for unaligned access.
24616
24617 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
24618
24619         * class.c: small cleanup (class->fields [i] -> field).
24620         * image.c: check address of metadata is valid.
24621
24622 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
24623
24624         * assembly.h assembly.c (mono_assembly_loaded): New public function to
24625         search the list of loaded assemblies.
24626
24627         * reflection.c (mono_reflection_type_from_name): Use 
24628         mono_assembly_loaded instead of mono_image_loaded.
24629
24630         * reflection.c: Fix warnings.
24631
24632 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
24633
24634         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
24635         is dynamic. This is needed since an assembly can contain both dynamic and
24636         non-dynamic images.
24637
24638         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
24639         assembly->dynamic.
24640
24641         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
24642
24643         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
24644         to store modules loaded using AddModule.
24645
24646         * reflection.c (mono_image_fill_file_table): Generalize this so it works
24647         on Modules.
24648
24649         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
24650
24651         * reflection.c (mono_image_fill_export_table_from_module): New function to
24652         fill out the EXPORTEDTYPES table from a module.
24653
24654         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
24655         into a separate function. Also handle loaded non-dynamic modules.
24656
24657         * reflection.c (mono_image_basic_init): Fix memory allocation.
24658
24659         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
24660
24661         * assembly.c (mono_assembly_load_references): Make this public.
24662
24663 2003-12-19  Martin Baulig  <martin@ximian.com>
24664
24665         * class.c (mono_class_initialize_generic): Made this static, take
24666         a `MonoGenericInst *' instead of a `MonoClass *'.
24667         (mono_class_from_generic): Call mono_class_initialize_generic()
24668         unless we're already initialized or being called from
24669         do_mono_metadata_parse_generic_inst().
24670
24671         * class.h (MonoGenericInst): Added `initialized' and
24672         `init_pending' flags.
24673
24674         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
24675         `mono_class_init (gklass)' or mono_class_initialize_generic()
24676         here; set `generic_inst->init_pending' while parsing the
24677         `type_argv'.
24678
24679 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
24680
24681         * locales.c: include string.h for memxxx prototypes
24682
24683 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
24684
24685         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
24686         constructor when accessing literal fields.
24687
24688 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
24689
24690         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
24691
24692         * reflection.c (assembly_add_resource_manifest): New function to fill
24693         the MANIFESTRESOURCE table.
24694
24695         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
24696
24697         * reflection.h: Update to changes in class layout.
24698
24699         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
24700         Reenable call to mono_runtime_is_shutting_down ().
24701
24702         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
24703         determine if the runtime is shutting down.
24704
24705 2003-12-16  Jackson Harper <jackson@ximian.com>
24706
24707         * icall.c: comment out call to mono_runtime_is_shutting_down to
24708         fix build.
24709         
24710 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
24711
24712         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
24713         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
24714
24715 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
24716
24717         * reflection.c: move definition of swap_with_size
24718         to before its first call
24719
24720 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
24721
24722         * appdomain.c (mono_runtime_is_shutting_down): New public function.
24723
24724         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
24725         icall.
24726
24727         * object.c: Fix warnings.
24728
24729         * icall.c (ves_icall_Type_Get...): Only consider inherited static
24730         members if FlattenHierarchy is set.
24731
24732         * reflection.c (mono_image_add_decl_security): New function to emit
24733         declarative security.
24734
24735         * reflection.h reflection.c: Add support for declarative security.
24736
24737         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
24738         
24739 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
24740
24741         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
24742         
24743         * appdomain.c verify.c: Moved corlib version checking into its own
24744         function in appdomain.c since it needs to create vtables etc.
24745
24746 2003-12-13  Patrik Torstensson <p@rxc.se>
24747
24748         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
24749         instead of unwrapped server.
24750
24751 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
24752
24753         * verify.c (check_corlib): Fix field index.
24754
24755 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
24756
24757         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
24758         GetGacPath icall.
24759
24760 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
24761
24762         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
24763         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
24764         cope with sizeof(size_t) != sizeof(guint32).
24765
24766 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24767
24768         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
24769         in case of failure.
24770
24771 2003-12-10  Mark Crichton <crichton@gimp.org>
24772
24773         * icall.c: removed the GetNonZeroBytes.  We now handle this case
24774         in managed code.
24775
24776         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
24777
24778 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
24779
24780         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
24781         marked as deleted.
24782
24783 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
24784
24785         * verify.c (check_corlib): Handle the case when the version field is 
24786         initialized by a static constructor.
24787
24788 2003-12-08  Patrik Torstensson  <p@rxc.se>
24789
24790     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
24791
24792 2003-12-08  Martin Baulig  <martin@ximian.com>
24793
24794         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
24795         a MonoReflectionGenericParameter, also take the parameter index
24796         and name as arguments.
24797         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
24798         (ves_icall_MonoGenericParam_initialize): New interncall.
24799         (ves_icall_Type_make_byref_type): New interncall.
24800
24801         * reflection.h (MonoReflectionGenericParam): Derive from
24802         MonoReflectionType, not just from MonoObject.  Added `refobj' and
24803         `index' fields.
24804
24805         * reflection.c (mono_reflection_define_generic_parameter): Create
24806         and return a new MonoReflectionGenericParam; don't initialize the
24807         constraints here.
24808         (mono_reflection_initialize_generic_parameter): New public method;
24809         initializes the constraints and creates the `param->pklass'.
24810
24811 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
24812
24813         * reflection.h reflection.c: Use the new fields 'num_types', 
24814         'num_fields' and 'num_methods' to track the number of types etc.
24815
24816         * verify.c (check_corlib): Check corlib version number.
24817
24818 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
24819
24820         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
24821         function works on all methods.
24822
24823 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
24824
24825         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
24826         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
24827         the custom_type_info flag of the transparent proxy.
24828         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
24829         objects that supports IRemotingTypeInfo.
24830         * object.h: Added custom_type_info field in transparent proxy.
24831
24832 2003-12-06  Martin Baulig  <martin@ximian.com>
24833
24834         * class.c (mono_class_create_from_generic): Removed.
24835         (mono_class_from_generic): Check `ginst->klass' before doing
24836         anything else.  This is important to fully support "recursive"
24837         generic types.
24838
24839         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
24840         empty `generic_inst->klass' before doing anything else.
24841
24842 2003-12-06  Dick Porter  <dick@ximian.com>
24843
24844         * verify.c: 
24845         * object.h:
24846         * icall.c:
24847         * locales.c: Use C structs to access class fields.  Don't do a
24848         conversion between MonoString and UChar because both are
24849         platform-endian UTF-16.  Compare now takes startindex and count
24850         parameters.  Add a char overload for IndexOf.  Speed up the
24851         invariant string IndexOf.
24852
24853 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
24854
24855         * Makefile.am (monosn_LDADD): Fix parallel build.
24856
24857 2003-12-04  Martin Baulig  <martin@ximian.com>
24858
24859         * icall.c
24860         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
24861         (ves_icall_Type_make_array_type): New interncall.       
24862
24863 2003-12-04  Martin Baulig  <martin@ximian.com>
24864
24865         * locales.c: also change it in the !HAVE_ICU case.
24866
24867 2003-12-04  Dick Porter  <dick@ximian.com>
24868
24869         * icall.c:
24870         * locales.c: construct_compareinfo is now in CompareInfo, not
24871         CultureInfo.
24872
24873 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
24874
24875         * image.c (mono_image_load_file_for_image): Cache loaded images in the
24876         image->files array.
24877
24878         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
24879         table as well.
24880
24881         * assembly.c (mono_assembly_load_references): Only load references
24882         once.
24883
24884         * class.c (mono_class_from_name): Avoid linear search of the 
24885         EXPORTEDTYPE table.
24886
24887         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
24888
24889 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
24890
24891         * image.h (MonoImage): Add 'field_cache' field.
24892
24893         * loader.c (mono_field_from_token): Cache field lookups.
24894         
24895         * reflection.c (mono_module_get_object): Fix name property.
24896
24897         * icall.c (ves_icall_get_enum_info): Update after changes to 
24898         mono_metadata_get_constant_index ().
24899
24900         * icall.c: Get rid of get_type_info icall, use a separate icall for
24901         each type property to avoid needless memory allocations. Fixes #51514.
24902
24903         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
24904         to avoid needless binary searches.
24905
24906         * class.c (class_compute_field_layout): Move the initialization of
24907         field->def_value to mono_class_vtable ().
24908
24909         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
24910         non-corlib types.
24911
24912         * object.c (mono_object_allocate): Make it inline.
24913
24914         * object.c (mono_object_allocate_spec): Make it inline.
24915         
24916 2003-12-02  Dick Porter  <dick@ximian.com>
24917
24918         * locales.c (create_NumberFormat): NumberFormatInfo construction.
24919         Patch by Mohammad DAMT (mdamt@cdl2000.com).
24920
24921 2003-12-01  Dick Porter  <dick@ximian.com>
24922
24923         * threads.c: Fix signature and call in CreateMutex and
24924         CreateEvent.
24925
24926 2003-12-01  Dick Porter  <dick@ximian.com>
24927
24928         * icall.c: 
24929         * locales.c: Implement string compares and searching
24930
24931         * object.h: Add extra Thread field
24932
24933 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
24934
24935         * reflection.c (fixup_method): Add support for MonoCMethod.
24936
24937 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
24938
24939         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
24940
24941         * reflection.c (assembly_name_to_aname): Allow extra characters in
24942         assembly names. Fixes #51468.
24943
24944 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
24945
24946         * exception.c (mono_exception_from_name_domain): New helper function.
24947
24948         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
24949         exception object in the correct domain.
24950
24951         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
24952         formatting + make a copy a the input data.
24953
24954         * loader.c (mono_get_method_from_token): Methods which contain
24955         native code do not have entries in the ImplMap.
24956
24957         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
24958         Thanks to Gonzalo for spotting this.
24959         
24960         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
24961         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
24962
24963         * assembly.h (mono_assembly_load_from): Split the second part of 
24964         assembly loading into a new public function.
24965
24966         * exception.h (mono_get_exception_bad_image_format): New function.
24967
24968 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
24969
24970         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
24971         Enumerate all modules inside a dynamic assembly. Fixes #51293.
24972         
24973         * icall.c: Add new icall for creating dynamic methods.
24974
24975         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
24976
24977         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
24978
24979         * reflection.c (mono_reflection_create_dynamic_method): New icall to
24980         create a dynamic method.
24981
24982         * reflection.c (resolve_object): New helper function.
24983
24984         * reflection.c: Generalize ReflectionMethodBuilder and the functions
24985         which manipulate it so they can also work on dynamic methods.
24986
24987         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
24988         creating the MonoReflectionMethodAux structure if it is not needed.
24989         
24990         * reflection.h verify.c: Update after changes to object layout.
24991
24992         * reflection.c (method_builder_encode_signature): Fix compilation on
24993         gcc 2.95.x.
24994
24995 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
24996
24997         * appdomain.h: Added support for context static fields. Added static_data
24998           field to MonoAppContext and renamed thread_static_fields to a more
24999           generic special_static_fields in MonoAppDomain, since it can now contain
25000           context static fields.
25001         * domain.c: Updated hashtable name.
25002         * object.c: Replaced field_is_thread_static() for a more generic
25003           field_is_special_static() which also checks for context static attribute.
25004           In mono_class_vtable(), added support for static context fields.
25005         * threads.c: Changed methods that manage thread static fields to more
25006           generic methods so they can be reused both for thread and context static
25007           data.
25008         * threads.h: Declared some new methods.
25009
25010 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
25011
25012         * reflection.h: Update after changes to the managed types.
25013
25014         * reflection.c (encode_custom_modifiers): New helper function.
25015
25016         * reflection.c (method_encode_signature): Emit custom modifiers.
25017
25018         * reflection.c (field_encode_signature): Emit custom modifiers.
25019
25020 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
25021
25022         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
25023
25024         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
25025         implementation.
25026
25027         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
25028         icall.
25029
25030         * object.c (mono_field_get_value_object): New function.
25031
25032         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
25033         specific.
25034
25035 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
25036
25037         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
25038         return a preallocated out-of-memory exception instance.
25039
25040         * object.c (out_of_memory): Use the new function.
25041
25042         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
25043         flag is before the custom modifiers. Fixes #49802.
25044
25045 2003-11-16  Martin Baulig  <martin@ximian.com>
25046
25047         * class.c (mono_class_is_open_constructed_type): Implemented the
25048         MONO_TYPE_GENERICINST case.
25049
25050 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
25051
25052         * assembly.c (mono_assembly_fill_assembly_name): New function to
25053         fill out the MonoAssemblyName structure.
25054         (mono_assembly_open): Use the new function.
25055
25056         * icall.c (fill_reflection_assembly_name): New helper function.
25057
25058         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
25059         new function.
25060
25061         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
25062
25063 2003-11-15  Martin Baulig  <martin@ximian.com>
25064
25065         * class.c (mono_class_is_open_constructed_type): New public
25066         function; checks whether a type is an open constructed type,
25067         ie. whether it still contains type parameters.
25068         (mono_class_inflate_generic_type): If we're a type parameter and
25069         the inflated type is also a MONO_TYPE_(M)VAR, return the original
25070         type.
25071
25072         * class.h (MonoGenericInst): Added `guint32 is_open'.
25073
25074         * loader.c (method_from_methodspec): Check whether we're an open
25075         or closed constructed type and set `ginst->is_open'.
25076
25077         * reflection.c (mono_reflection_bind_generic_parameters): Check
25078         whether we're an open or closed constructed type and set
25079         `ginst->is_open'.
25080         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
25081         from open constructed types.
25082
25083 2003-11-15  Martin Baulig  <martin@ximian.com>
25084
25085         * reflection.c (mono_reflection_bind_generic_parameters): If we're
25086         a generic instance (instead of a generic type declaration) with
25087         unbound generic parameters, bind them to our actual types.
25088
25089 2003-11-14  Martin Baulig  <martin@ximian.com>
25090
25091         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
25092
25093         * reflection.c (mono_reflection_bind_generic_parameters): If we're
25094         an interface type, populate `res->interfaces' with instantiated
25095         versions of all the interfaces we inherit.
25096
25097 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
25098
25099         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
25100         when MONO_PATH is set but doesn't contain the install dir.
25101
25102 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25103
25104         * icall.c:
25105         (ves_icall_Type_GetInterfaces): don't return an interface twice when
25106         it's also implemented in base classes. Fixes bug #50927.
25107
25108 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
25109
25110         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
25111         if this method is called from a finalizer. Fixes #50913.
25112
25113 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
25114
25115         * threads.c: Implement VolatileRead/VolatileWrite
25116
25117         * icall.c: Add new icalls for VolatileRead/VolatileWrite
25118
25119 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
25120
25121         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
25122         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
25123         2.95.3.
25124
25125         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
25126         from Peter Ross (pro@missioncriticalit.com).
25127         
25128 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
25129
25130         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
25131
25132 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
25133
25134         * assembly.c (mono_assembly_load_references): Disable check because it
25135         triggers on older corlibs which lots of people have.
25136
25137 2003-11-12  Jackson Harper  <jackson@ximian.com>
25138
25139         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
25140         load corlib.dll if mscorlib.dll is not found.
25141         * assembly.h: Remove corlib name define.
25142         * class.c:
25143         * domain.c:
25144         * image.c: Change corlib name to mscorlib.
25145         
25146 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
25147
25148         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
25149
25150 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
25151
25152         * appdomain.h: Added loader_optimization here to sync with the C#
25153         code, and add disallow_binding_redirects field.
25154
25155 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
25156
25157         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
25158
25159         * reflection.c (mono_image_build_metadata): Fix crash on modules
25160         with no types.
25161
25162         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
25163
25164         * icall.c (ves_icall_get_method_info): Return callingConvention as
25165         well.
25166
25167         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
25168         namespaces from the EXPORTEDTYPE table as well.
25169
25170         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
25171         from all modules inside the assembly.
25172         
25173 2003-11-11  Martin Baulig  <martin@ximian.com>
25174
25175         * reflection.c (mono_reflection_bind_generic_parameters): Make
25176         this work for interfaces.
25177
25178 2003-11-11  Martin Baulig  <martin@ximian.com>
25179
25180         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
25181
25182 2003-11-11  Martin Baulig  <martin@ximian.com>
25183
25184         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
25185         "MonoInflatedMethod" and "MonoInflatedCtor".
25186
25187 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
25188
25189         * reflection.c (resolution_scope_from_image): Use the assembly table
25190         from the manifest module, since other modules don't have it.
25191
25192         * debug-helpers.c (mono_type_full_name): New helper function.
25193
25194         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
25195
25196         * image.c (mono_image_load_file_for_image): New public function which
25197         is a replacement for the load_file_for_image in class.c.
25198
25199         * assembly.c (mono_assembly_load_module): A wrapper for the function
25200         above which does assembly association and reference loading too.
25201
25202         * class.c (mono_class_from_name): Call mono_assembly_load_module.
25203
25204 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25205
25206         * appdomain.c: not all of the attributes for the full assembly name
25207         are required and the order doesn't matter. Fixes bug #50787.
25208
25209 2003-11-10  Dick Porter  <dick@ximian.com>
25210
25211         * locales.c: Use platform-endian UTF16
25212
25213 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
25214
25215         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
25216         
25217 2003-11-10  Martin Baulig  <martin@ximian.com>
25218
25219         * metadata.c
25220         (mono_metadata_load_generic_params): Make this actually work.
25221
25222         * reflection.c (mono_reflection_bind_generic_parameters): If our
25223         parent is a generic instance, pass all the `types' to it, no
25224         matter whether it has the same number of type parameters or not.
25225
25226 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
25227
25228         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
25229
25230         * assembly.c (mono_assembly_load_references): Move the image<->assembly
25231         assignment code to this function so it gets called recursively for all
25232         modules.
25233
25234         * image.c (load_modules): Remove the assembly assignment since it is
25235         now done by mono_assembly_load_references.
25236         
25237         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
25238         Add 'module' argument.
25239         (mono_module_get_types): New helper function.
25240         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
25241
25242 2003-11-08  Martin Baulig  <martin@ximian.com>
25243
25244         * class.c (mono_class_inflate_generic_method): Interface method
25245         don't have a header.
25246
25247         * reflection.c (mono_image_get_methodspec_token): Take an
25248         additional `MonoGenericInst *' argument instead of reading it from
25249         the header; this is necessary to support interfaces.
25250         (mono_image_create_token): Pass the `MonoGenericInst *' from the
25251         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
25252         (inflated_method_get_object): Take an additional `MonoGenericInst *'
25253         argument.
25254
25255         * reflection.h (MonoReflectionInflatedMethod): Added
25256         `MonoGenericInst *ginst'.
25257
25258 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
25259
25260         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
25261
25262 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
25263
25264         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
25265
25266 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
25267
25268         * reflection.c 
25269         (reflection_methodbuilder_from_method_builder):
25270         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
25271         initialize a ReflectionMethodBuilder structure.
25272         (mono_image_get_methodbuilder_token):
25273         (mono_image_get_ctorbuilder_token): New functions to emit memberref
25274         tokens which point to types in another module inside the same assembly.
25275
25276         * reflection.c: Use the new helper functions.
25277         
25278         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
25279
25280         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
25281         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
25282
25283         * reflection.c (resolution_scope_from_image): Emit a moduleref if
25284         neccesary.
25285
25286         * reflection.c (mono_image_build_metadata): Emit metadata only for the
25287         current module. Emit the manifest only for the main module.
25288
25289         * reflection.c (mono_image_create_token): Add assertion when a 
25290         memberref needs to be created.
25291
25292         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
25293
25294         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
25295         larger buffer for the custom attribute blob. Fixes #50637.
25296         
25297 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25298
25299         * threadpool.c: notify listener on async processing handles after
25300         invoking the async callback. Thanks to Zoltan.
25301
25302 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
25303
25304         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
25305         avoid code duplication.
25306
25307         * reflection.h (MonoDynamicImage): New type which is currently unused,
25308         but will be used through the ref.emit code in place of 
25309         MonoDynamicAssembly.
25310
25311         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
25312         object layout.
25313
25314         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
25315         a MonoDynamicImage instead of just a MonoImage.
25316         
25317         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
25318         icalls to ModuleBuilder but keep their semantics, so they will work
25319         with moduleb->assemblyb. This will change later.
25320         
25321 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
25322
25323         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
25324         object layout.
25325
25326         * reflection.c (mono_image_build_metadata): Avoid creation of a default
25327         main module, since it is now done by the managed code.
25328
25329 2003-11-03  Martin Baulig  <martin@ximian.com>
25330
25331         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
25332         `ginst->klass' here.
25333         (method_encode_methodspec): Don't use the `ginst->generic_method's
25334         klass if it's a generic instance, use `ginst->klass' in this case.
25335
25336 2003-11-03  Martin Baulig  <martin@ximian.com>
25337
25338         * reflection.c (mono_image_get_generic_method_param_info):
25339         Removed, use mono_image_get_generic_param_info() instead.
25340         (mono_image_get_type_info): Write the GenericParam table before
25341         the Method table.  This is neccessary because in the GenericParam
25342         table, type parameters of the class (ie. '!0' etc.) must come
25343         before the ones from its generic methods (ie. '!!0' etc).
25344
25345 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
25346
25347         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
25348
25349 2003-11-02  Martin Baulig  <martin@ximian.com>
25350
25351         * reflection.c (create_generic_typespec): Take a
25352         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
25353         the generic parameters from it.
25354
25355 2003-11-02  Martin Baulig  <martin@ximian.com>
25356
25357         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
25358         instead of a `MonoClassField *' since we just need the type.
25359         (create_generic_typespec): New static function.  Creates a
25360         TypeSpec token for a generic type declaration.
25361         (mono_image_get_generic_field_token): New static function.
25362         (mono_image_create_token): If we're a FieldBuilder in a generic
25363         type declaration, call mono_image_get_generic_field_token() to get
25364         the token.
25365
25366 2003-11-02  Martin Baulig  <martin@ximian.com>
25367
25368         * reflection.h
25369         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
25370         `MonoReflectionGenericInst *declaring_type' and
25371         `MonoReflectionGenericInst *reflected_type' fields.
25372
25373         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
25374         `MonoReflectionGenericInst *declaring_type' and a
25375         `MonoReflectionGenericInst *reflected_type' argument instead of a
25376         single `MonoReflectionGenericInst *type' one.  Set
25377         `res->declaring_type' and `res->reflected_type' from them.
25378         (mono_reflection_inflate_field): Likewise.      
25379
25380 2003-11-02  Martin Baulig  <martin@ximian.com>
25381
25382         * class.c (mono_class_setup_vtable): Don't store generic methods
25383         in the vtable.  
25384
25385 2003-11-02  Martin Baulig  <martin@ximian.com>
25386
25387         * reflection.h (MonoReflectionGenericInst): Added
25388         `MonoReflectionType *declaring_type'.
25389
25390         * reflection.c (mono_reflection_bind_generic_parameters): Use
25391         `if (tb->parent)' instead of `klass->parent'.
25392
25393 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
25394
25395         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
25396         with an empty ASSEMBLY table.
25397
25398         * reflection.c (mono_image_build_metadata): Avoid using the same loop
25399         variable in the inner and outer loops.
25400
25401 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
25402
25403         * metadata.h (mono_metadata_make_token): Put parentheses around macro
25404         argument.
25405
25406         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
25407         
25408         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
25409         icalls. Instead, do everything in managed code. This is needed since
25410         it is hard to restore the original domain etc. in unmanaged code in the
25411         presence of undeniable exceptions.
25412
25413         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
25414         New icalls to push and pop appdomain refs.
25415
25416 2003-10-31  Martin Baulig  <martin@ximian.com>
25417
25418         * class.c (inflate_generic_type): Renamed to
25419         mono_class_inflate_generic_type() and made it public.
25420
25421         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
25422         New interncall.
25423
25424         * loader.c (mono_field_from_memberref): Also set the retklass for
25425         typespecs.
25426
25427         * fielder.c (mono_image_get_inflated_field_token): New static
25428         method; creates a metadata token for an inflated field.
25429         (mono_image_create_token, fixup_method): Added support for
25430         "MonoInflatedField".
25431         (fieldbuilder_to_mono_class_field): New static function.
25432         (mono_reflection_inflate_field): New public function.
25433
25434         * reflection.h
25435         (MonoReflectionGenericInst): Added `MonoArray *fields'.
25436         (MonoReflectionInflatedField): New typedef.     
25437
25438 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
25439
25440         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
25441         for Solaris and other platforms without s6_addr16
25442
25443 2003-10-30  Martin Baulig  <martin@ximian.com>
25444
25445         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
25446         argument instead of two.
25447         (mono_class_inflate_generic_signature): Likewise.
25448         (inflate_generic_header): Likewise.
25449         (mono_class_inflate_generic_method): Likewise.  In addition, if
25450         `ginst->klass' is set, it becomes the new `method->klass'.
25451
25452         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
25453         field.
25454
25455         * reflection.c (encode_generic_method_sig): Write a 0xa as the
25456         first byte. [FIXME]
25457         (method_encode_methodspec): If we have generic parameters, create
25458         a MethodSpec instead of a MethodRef.
25459         (fixup_method): Added support for "MonoInflatedMethod" and
25460         "MonoInflatedCtor".
25461         (mono_image_create_token): Added support for "MonoInflatedMethod"
25462         and "MonoInflatedCtor".
25463         (inflated_method_get_object): New static function; returns a
25464         managed "System.Reflection.MonoInflatedMethod" object.
25465         (mono_reflection_bind_generic_method_parameters): Return a
25466         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
25467         (mono_reflection_inflate_method_or_ctor): Likewise.
25468         (mono_image_get_generic_method_param_info): Initialize unused
25469         fields to zero.
25470         (mono_image_get_generic_param_info): Likewise.
25471
25472         * reflection.h (MonoReflectionInflatedMethod): New public
25473         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
25474         "S.R.MonoInflatedCtor" classes.
25475
25476         * loader.c (method_from_memberref): If we're a TypeSpec and it
25477         resolves to a generic instance, inflate the method.
25478
25479 2003-10-28  Dick Porter  <dick@ximian.com>
25480
25481         * object.c (mono_runtime_run_main): Convert command-line arguments
25482         into utf8, falling back to the user's locale encoding to do so.
25483
25484 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
25485
25486         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
25487         at this time.
25488
25489         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
25490
25491         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
25492         up icalls at method definition time. Partially fixes #33569.
25493
25494 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
25495
25496         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
25497         marshalling of arrays. Fixes #50116.
25498
25499         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
25500
25501         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
25502         points to a vtable in the dying appdomain.
25503
25504         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
25505         listeners into unmanaged code inside the lock.
25506
25507         * object.c (mono_class_vtable): Turn off typed allocation in non-root
25508         domains and add some comments.
25509
25510 2003-10-25  Martin Baulig  <martin@ximian.com>
25511
25512         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
25513
25514         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
25515
25516         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
25517         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
25518         currently parsing.  Create the generic class and store it in
25519         `generic_inst->klass' before parsing the type arguments.  This is
25520         required to support "recursive" definitions; see mcs/tests/gen-23.cs
25521         for an example.
25522         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
25523         to support recursive typespec entries.
25524
25525         * class.c (mono_class_setup_parent): If our parent is a generic
25526         instance, we may get called before it has its name set.
25527         (mono_class_from_generic): Splitted into
25528         mono_class_create_from_generic() and mono_class_initialize_generic().
25529
25530 2003-10-25  Martin Baulig  <martin@ximian.com>
25531
25532         * icall.c (ves_icall_Type_BindGenericParameters): Return a
25533         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
25534         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
25535         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
25536
25537         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
25538         (create_typespec): Likewise.
25539         (mono_reflection_bind_generic_parameters): Return a
25540         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
25541         (mono_reflection_inflate_method_or_ctor): New public function.
25542
25543         * reflection.h (MonoReflectionGenericInst): New typedef.        
25544
25545 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
25546
25547         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
25548         inside the domain lock. Fixes #49993.
25549         
25550         * object.c (mono_class_vtable): When typed allocation is used, 
25551         allocate vtables in the GC heap instead of in the mempool, since the
25552         vtables contain GC descriptors which are used by the collector even
25553         after the domain owning the mempool is unloaded.
25554
25555         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
25556
25557         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
25558         reflect what it does. Also invalidate mempools instead of freeing
25559         them if a define is set.
25560
25561         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
25562         of the appdomain.
25563         
25564         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
25565         hold the finalizable objects in this domain.
25566
25567         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
25568         appdomain.
25569
25570         * appdomain.c (mono_domain_set): New function to set the current
25571         appdomain, but only if it is not being unloaded.
25572
25573         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
25574         appdomain which is being unloaded.
25575         
25576         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
25577         unloading of the root appdomain.
25578
25579         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
25580         icall to execute a method in another appdomain. Intended as a 
25581         replacement for InternalSetDomain, which can confuse the code 
25582         generation in the JIT.
25583
25584         * appdomain.c (mono_domain_is_unloading): New function to determine
25585         whenever an appdomain is unloading.
25586
25587         * appdomain.c (mono_domain_unload): New function to correctly unload
25588         an appdomain.
25589
25590         * assembly.c (mono_assembly_load_references): Check that an assembly
25591         does not references itself.
25592
25593         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
25594         domain manually, it asks the finalizer thread to do it, then waits for
25595         the result. Also added a timeout.
25596
25597         * icall.c: Register the new icalls.
25598
25599         * threads.h threads.c: Export the mono_gc_stop_world and 
25600         mono_gc_start_world functions.
25601         
25602         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
25603         function to fill out the mempool with 0x2a.
25604
25605 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
25606
25607         * reflection.h (MonoReflectionMethodAux): New structure to store
25608         information which is rarely used, thus is not in the MonoMethod
25609         structure.
25610
25611         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
25612         store the aux info.
25613
25614         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
25615         and marshalling info into the aux structure.
25616
25617         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
25618         from the aux structure.
25619
25620         * loader.c (mono_method_get_param_names): Retrieve the param names from
25621         the aux structure.
25622         
25623 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
25624
25625         * exception.h exception.c: Add AppDomainUnloadedException && fix 
25626         warning.
25627
25628 2003-10-21  Dick Porter  <dick@ximian.com>
25629
25630         * socket-io.c
25631         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
25632         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
25633
25634 2003-10-21  Martin Baulig  <martin@ximian.com>
25635
25636         * reflection.c (mono_reflection_bind_generic_parameters):
25637         `klass->parent' is NULL for interfaces.
25638
25639 2003-10-21  Martin Baulig  <martin@ximian.com>
25640
25641         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
25642
25643 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
25644
25645         * exception.c (mono_exception_from_name_msg): New helper function for
25646         creating exceptions and initializing their message field.
25647
25648         * exception.c: Simplify functions using the new helper.
25649
25650         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
25651         New function.
25652
25653         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
25654         mono_raise_exception, since otherwise gcc doesn't generate the function
25655         epilog for raise_exception, confusing the stack unwinding in the JIT.
25656         Fixes #45043.
25657
25658         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
25659         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
25660         Fixes #49499.
25661
25662 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25663
25664         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
25665         utf8.
25666
25667 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
25668
25669         * icall.c: Removed GetUninitializedObject method because
25670           AllocateUninitializedClassInstance does the same.
25671
25672 2003-10-18  Martin Baulig  <martin@ximian.com>
25673
25674         * class.c (inflate_generic_signature): Renamed to
25675         mono_class_inflate_generic_signature() and made it public.
25676         (my_mono_class_from_generic_parameter): New static function; if we
25677         don't already have the generic parameter's MonoClass, create a
25678         very simple one which is just used internally in the runtime and
25679         not passed back to managed code.
25680
25681         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
25682
25683         * metadata.h (MonoMethodSignature): Moved the
25684         `MonoGenericParam *gen_params' to the MonoMethodHeader.
25685         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
25686
25687         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
25688         ves_icall_MonoMethod_GetGenericArguments(); this is now an
25689         interncall on the MonoMethod class, not on MethodInfo.
25690         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
25691         calling mono_reflection_bind_generic_method_parameters() directly.
25692
25693         * loader.c (mono_method_get_signature): If this is a MethodSpec;
25694         return the already computed `method->signature'.
25695         (method_from_methodspec): New static function to load a method
25696         from a MethodSpec entry.
25697         (mono_get_method_from_token): Call the new method_from_methodspec()
25698         for MethodSpec tokens.  
25699         (mono_get_method_from_token): If we're a generic method, load the
25700         type parameters.
25701
25702         * reflection.c (mono_image_get_memberref_token): Allow
25703         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
25704         table.
25705         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
25706         (mono_image_create_token): First check whether it's a generic
25707         method (so we'd need to create a MethodSpec), then do the other
25708         two alternatives.
25709         (mono_reflection_bind_generic_method_parameters): Return a
25710         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
25711         called directly from the interncall.
25712
25713 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
25714
25715         * reflection.c (load_public_key): Move loading of the public key
25716         into managed code.
25717
25718         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
25719
25720         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
25721         fields.
25722
25723         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
25724         culture, hash_alg and public_key. Fixes #49555.
25725
25726 2003-10-17  Martin Baulig  <martin@ximian.com>
25727
25728         * class.h (MonoGenericInst): Moved this declaration here and added
25729         `MonoMethod *generic_method'.
25730
25731         * icall.c
25732         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
25733         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
25734
25735         * metadata.c (mono_metadata_type_equal): Two types of
25736         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
25737         index; ie. don't compare the address of the `MonoGenericParam'
25738         structure.
25739         (mono_metadata_load_generic_params): Removed the `MonoMethod
25740         *method' argument.
25741
25742         * metadata.h (MonoGenericInst): Moved declaration to class.h.
25743         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
25744
25745         * reflection.c (method_encode_signature): Encode the number of
25746         generic parameters.
25747         (encode_generic_method_sig): New static function.
25748         (method_encode_methodspec): New static function; creates an entry
25749         in the MethodSpec table for a generic method.
25750         (mono_image_get_methodspec_token): New static function.
25751         (mono_image_create_token): Call mono_image_get_methodspec_token()
25752         for generic methods.
25753         (mono_reflection_bind_generic_method_parameters): New public
25754         function.  Instantiates a generic method.
25755
25756 2003-10-16  Martin Baulig  <martin@ximian.com>
25757
25758         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
25759         *gen_params' here from MonoMethodHeader.
25760
25761         * metadata.c (mono_metadata_parse_method_signature): If we have
25762         generic parameters, initialize `method->gen_params' and then set
25763         the correct `type->data.generic_param' in all the parameters.
25764
25765 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
25766
25767         * threads.c (mono_threads_get_default_stacksize): New function to 
25768         return the default stacksize.
25769
25770         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
25771         termination of the finalizer thread, since the previous method had
25772         race conditions. Fixes #49628.
25773
25774         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
25775         as for the other managed threads.
25776
25777 2003-10-16  Martin Baulig  <martin@ximian.com>
25778
25779         * class.c (inflate_generic_signature): Copy `generic_param_count'
25780         and `gen_params'.
25781
25782         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
25783         New interncall.
25784
25785         * metadata.c (mono_metadata_parse_method_signature): Actually set
25786         the `method->generic_param_count' here.
25787         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
25788
25789 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
25790
25791         * object.h: Add a new field to TypedRef to simplify the implementation
25792         of the REFANY opcodes in the JIT.
25793
25794         * icall.c: Make use of the new field.
25795
25796         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
25797         dynamically.
25798
25799 2003-10-15  Martin Baulig  <martin@ximian.com>
25800
25801         * class.c (mono_class_from_gen_param): Renamed to
25802         mono_class_from_generic_parameter() and moved most of the
25803         functionality from mono_reflection_define_generic_parameter()
25804         here; ie. we create a "real" class here.
25805         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
25806         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
25807         previously been called.
25808
25809         * class.h (MonoGenericParam): Moved the declaration of this struct
25810         here from metadata.h and added `MonoMethod *method'.
25811
25812         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
25813         interncall.
25814
25815         * loader.c (mono_get_method_from_token): If we have any generic
25816         parameters, call mono_metadata_load_generic_params() to read them
25817         from the MONO_TABLE_GENERICPAR.
25818
25819         * metadata.c (mono_metadata_load_generic_params): Added
25820         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
25821
25822         * metadata.h (MonoMethodSignature): Replaced
25823         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
25824         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
25825
25826         * reflection.c (mono_reflection_define_generic_parameter): Moved
25827         most of the functionality into the new
25828         mono_class_from_generic_parameter(); set the `method' field if
25829         we're a method parameter.       
25830
25831 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
25832
25833         * marshal.c (emit_struct_conv): if native size is 0
25834         emit no code.
25835
25836 2003-10-14  Martin Baulig  <martin@ximian.com>
25837
25838         * icall.c: The generics API has changed in the spec since it was
25839         added to System.Type; these modifications make it match the spec
25840         again.
25841         (ves_icall_Type_GetGenericParameters): Renamed to
25842         `ves_icall_Type_GetGenericArguments'.
25843         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
25844         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
25845         `ves_icall_MonoType_get_HasGenericArguments'.
25846         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
25847         `ves_icall_MonoType_get_IsGenericParameter'.
25848         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
25849         this is no interncall anymore.
25850         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
25851         `ves_icall_TypeBuilder_get_IsGenericParameter'.
25852
25853 2003-10-14  Martin Baulig  <martin@ximian.com>
25854
25855         * reflection.c (mono_reflection_bind_generic_parameters): Also
25856         inflate generic methods if we're reading the class from IL.
25857
25858 2003-10-13  Martin Baulig  <martin@ximian.com>
25859
25860         * reflection.c (mono_reflection_define_generic_parameter): This
25861         method isn't called directly from the icall anymore; take a
25862         `MonoReflectionAssemblyBuilder *' so we can use this for type and
25863         method generic parameters.
25864         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
25865         (method_builder_encode_signature): Encode generic parameters.
25866         (mono_image_get_method_info): Write generic params to the
25867         MONO_TABLE_GENERICPARAM table.
25868
25869         * reflection.h (MonoReflectionMethodBuilder): Added
25870         `MonoArray *generic_params'.
25871
25872         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
25873
25874         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
25875         wrapper for mono_reflection_define_generic_parameter().
25876         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
25877
25878 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
25879
25880         * marshal.h: Add missing function to fix build.
25881
25882         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
25883         the SetLastError pinvoke attribute.
25884
25885         * marshal.c (mono_marshal_set_last_error): New helper function called
25886         by the generated code.
25887         
25888         * marshal.c (mono_mb_emit_branch): New helper function.
25889
25890         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
25891
25892         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
25893         classes as parameters and return values of delegates. Fixes #29256. 
25894
25895 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
25896
25897         * locales.c: use gint32 in non HAVE_ICU case
25898
25899 2003-10-11  Martin Baulig  <martin@ximian.com>
25900
25901         * mono-debug.c (mono_debug_add_method): Added a workaround for
25902         bug #48591.
25903
25904 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
25905
25906         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
25907         delegates passed to native code must use the STDCALL calling 
25908         convention. Fixes #35987.
25909
25910 2003-10-10  Martin Baulig  <martin@ximian.com>
25911
25912         * class.c (inflate_generic_type): If we're inflating for a generic
25913         type instance (and not for a generic method), return
25914         MONO_TYPE_MVAR unchanged.
25915
25916 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25917
25918         * string-icalls.c: Join ignores null strings in the source array.
25919         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
25920         * threads.c: GetAvailableTheads is slightly more accurate.
25921
25922 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
25923
25924         * threads.h threads.c : add mono_threads_set_default_stacksize
25925         and pass default to CreateThread calls.
25926
25927 2003-10-09  Dick Porter  <dick@ximian.com>
25928
25929         * icall.c:
25930         * locales.h:
25931         * locales.c: Internal calls for constructing CultureInfo and
25932         related objects from libicu (if its available.)
25933
25934 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
25935
25936         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
25937
25938 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25939
25940         * threadpool.c: added an argument to async_invoke_thread that is the
25941         item to process, pass the MonoAsyncResult to the thread start function
25942         when creating a new thread. This way we don't need to acquire any lock
25943         when we're creating a new thread. Readded a semaphore for faster
25944         response times (instead of that Sleep i added).
25945
25946 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
25947
25948         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
25949         get daylight change dates better on Windows, fix handling
25950         of platforms without tm_gmtoff.
25951
25952 2003-10-06  Martin Baulig  <martin@ximian.com>
25953
25954         * class.c (inflate_generic_method): Renamed to
25955         mono_class_inflate_generic_method() and made public.
25956         (mono_class_init): Don't inflate the generic methods here.
25957         (mono_class_from_generic): Added `gboolean inflate_methods'
25958         argument.  Inflate the methods here.
25959
25960         * loader.c (mono_method_get_param_names): Ignore instances of
25961         generic types for the moment.
25962
25963         * reflection.c (fixup_method): Added support for inflated methods.
25964         (mono_image_create_token): Use mono_image_get_methodref_token()
25965         for inflated methods.
25966         (mono_custom_attrs_from_param): Ignore instances of generic types
25967         for the moment.
25968         (mono_reflection_bind_generic_parameters): New public function.
25969         Moved all the functionality from
25970         ves_icall_Type_BindGenericParameters() here and added support for
25971         dynamic types.
25972         (mono_reflection_define_generic_parameter): Initialize
25973         `klass->methods' here.
25974
25975         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
25976         functionality into mono_reflection_define_generic_parameter().
25977         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
25978         TypeBuilder, return that TypeBuilder.
25979
25980 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25981
25982         * appdomain.c: removed mono_delegate_semaphore.
25983
25984         * threadpool.c:
25985         (mono_thread_pool_add): moved hash table creation inside and the thread 
25986         creation outside of the critical region.
25987         (mono_thread_pool_finish): removed obsolete code.
25988         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
25989         continue or exit the thread depending on the queue.
25990
25991 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
25992
25993         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
25994         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
25995         handle more bool marshalling options
25996
25997 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
25998
25999         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
26000         arrays of structs. Also add a more descriptive error message when
26001         a structure member is marshalled as LPArray.
26002
26003 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
26004
26005         * marshal.c (mono_marshal_get_native_wrapper): Add support for
26006         marshalling arrays of complex types. Fixes #29098. Also remove an
26007         usused and incomplete function.
26008
26009 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
26010
26011         * gc.c: report heap_size - free_bytes as total memory allocated
26012         (bug#49362).
26013
26014 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
26015
26016         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
26017         fix timezone handling problems on Windows.
26018         
26019         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
26020         asserts when the year is outside the range handled by ms the functions.
26021
26022         * class.c (setup_interface_offsets): If the class is an interface,
26023         fill out its interface_offsets slot.
26024
26025 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26026
26027         * threadpool.c: mark threadpool threads as background.
26028
26029 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
26030
26031         * decimal.c - define DECINLINE to nothing if not using GCC
26032
26033 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
26034
26035         * assembly.c: More refcount fixes.
26036
26037 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26038
26039         * string-icalls.c: if we're not trimming, return the same string.
26040         When not splitting, don't create a new string.
26041
26042 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26043
26044         * image.c:
26045         (mono_image_open): increment the ref_count inside the critical section.
26046
26047 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
26048
26049         * image.c (mono_image_open): Fix reference counting bug.
26050
26051 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
26052
26053         * marshal.c (mono_marshal_type_size) struct alignment changed for 
26054         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
26055         64bits. Avoid leak in mono_marshal_get_native_wrapper when
26056         mono_lookup_pinvoke_call throws.        
26057
26058 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
26059
26060         * reflection.c (mono_reflection_parse_type): Fix #49114.
26061
26062         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
26063         temporary workaround for cygwin header problem.
26064
26065         * object.c (mono_object_isinst): Synchronize this with the code
26066         generated by the JIT for casts.
26067
26068 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
26069
26070         * reflection.c (encode_type): Fix #38332.
26071
26072 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
26073
26074         * marshal.c (mono_marshal_method_from_wrapper): New function to return
26075         the original method from the wrapper method.
26076
26077 2003-09-25  Martin Baulig  <martin@ximian.com>
26078
26079         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
26080         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
26081         (ves_icall_Type_get_IsGenericInstance): New interncall.
26082
26083 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
26084
26085         * object.c: fix cast warning in big endian code.
26086
26087 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
26088
26089         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
26090         
26091 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26092
26093         * assembly.c: don't call check_env from mono_assembly_load. It's
26094         already done once in mono_assemblies_init and may cause headaches when
26095         multiple threads are loading assemblies.
26096
26097 2003-09-19  Martin Baulig  <martin@ximian.com>
26098
26099         * reflection.c (mono_reflection_define_generic_parameter): Don't
26100         allocate `klass->methods', set `klass->flags' to
26101         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
26102
26103 2003-09-18  Martin Baulig  <martin@ximian.com>
26104
26105         * class.c (mono_class_init): Don't create `class->methods' if it's
26106         already initialized.
26107
26108         * metadata.c (mono_metadata_load_generic_params): Make this
26109         actually work.
26110
26111         * reflection.c (mono_reflection_define_generic_parameter): Set
26112         parent class and interfaces from the constraints.
26113
26114         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
26115         to keep this struct in sync with the declaration in TypeBuilder.cs.
26116
26117 2003-09-17  Martin Baulig  <martin@ximian.com>
26118
26119         * metadata.h (MonoType): Replaced the data's `int type_param'
26120         field with `MonoGenericParam *generic_param'.
26121         (MonoGenericParam): Added `MonoClass *klass'.
26122
26123         * class.c (mono_class_from_gen_param): Removed the
26124         `MonoImage *image' and `int type_num' arguments.
26125
26126         * metadata.c (mono_metadata_parse_generic_param): New static
26127         method; creates a MonoGenericParam which just contains the index.
26128         (do_mono_metadata_parse_type): Call
26129         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
26130         MONO_TYPE_MVAR.
26131
26132         * reflection.c (mono_image_typedef_or_ref): Generic type
26133         parameters may be in the same assembly, but never use a typedef
26134         for them.
26135         (mono_reflection_define_generic_parameter): We're now creating a
26136         "real" class for the type parameter; it's now safe to call
26137         mono_class_from_mono_type() on the class'es type, it'll do the
26138         right thing.
26139
26140 2003-09-16  Martin Baulig  <martin@ximian.com>
26141
26142         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
26143         `symfile->range_entry_size' and `symfile->class_entry_size' here;
26144         the `symfile' data structure must be fully initialized before it
26145         gets added to the table.
26146
26147 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
26148
26149         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
26150
26151         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
26152         class init trampolines.
26153
26154 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
26155
26156         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
26157         to the built-in profiler to turn off time and allocation profiling
26158         respectively.
26159
26160 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
26161
26162         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
26163         g_direct_equal.
26164
26165         * debug-helpers.c (mono_method_full_name): Print the wrapper type
26166         in human readable form.
26167
26168 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
26169
26170         * reflection.c icall.c: Fixed warnings.
26171
26172         * image.c (load_class_names): Use a temporary hash table to hold the
26173         namespaces in order to avoid doing many string comparisons.
26174
26175         * image.h: Fix typo.
26176
26177         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
26178         Pass NULL instead of g_direct_equal to the GHashTable constructor 
26179         since the NULL case is short-circuited inside g_hash_table_lookup, 
26180         leading to better performance.  
26181
26182         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
26183         obtain the first custom attribute for a given index. Depends on the
26184         CustomAttribute table being sorted by the parent field.
26185
26186         * reflection.c (mono_custom_attrs_from_index): Use the new function 
26187         for better performance.
26188
26189 2003-09-07  Martin Baulig  <martin@ximian.com>
26190
26191         * class.c (mono_class_init): If we're a generic instance, inflate
26192         all our methods instead of loading them from the image.
26193         (mono_class_from_generic): Set `class->methods = gklass->methods'.
26194
26195 2003-09-07  Martin Baulig  <martin@ximian.com>
26196
26197         * mono-debug-debugger.c: Added support for constructors.
26198
26199 2003-09-06  Martin Baulig  <martin@ximian.com>
26200
26201         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
26202         New interncall.
26203
26204         * reflection.c (mono_reflection_setup_generic_class): Call
26205         ensure_runtime_vtable() to create the vtable.
26206
26207 2003-09-05  Martin Baulig  <martin@ximian.com>
26208
26209         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
26210         MONO_TYPE_MVAR.
26211
26212 2003-09-04  Martin Baulig  <martin@ximian.com>
26213
26214         * reflection.c (mono_reflection_define_generic_parameter): Generic
26215         parameters start with zero.
26216
26217 2003-09-04  Martin Baulig  <martin@ximian.com>
26218
26219         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
26220
26221         * reflection.h (MonoReflectionGenericParam): New typedef.
26222         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
26223         the generic parameters from the managed TypeBuilder.
26224
26225         * reflection.c (mono_reflection_define_generic_parameter): New function.
26226         (mono_reflection_create_runtime_class): Encode generic parameters.
26227         (mono_reflection_setup_generic_class): New function; this is
26228         called after adding adding all generic params to the TypeBuilder.
26229         (encode_type): Added MONO_TYPE_VAR.
26230
26231 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
26232
26233         * class.h class.c (mono_class_needs_cctor_run): Moved this method
26234         here from the JIT.
26235
26236         * assembly.h assembly.c: Moved the AOT loading code into an assembly
26237         load hook.
26238
26239 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
26240
26241         * reflection.h reflection.c class.h class.c: Delete duplicate 
26242         definition of mono_type_get_name () from reflection.c and export the
26243         one in class.c.
26244
26245         * class.c: Class loading fixes from Bernie Solomon 
26246         (bernard@ugsolutions.com).
26247
26248         * reflection.c: Endianness fixes from Bernie Solomon 
26249         (bernard@ugsolutions.com).
26250         
26251 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
26252
26253         * assembly.h assembly.c: Define a file format version for AOT
26254         libraries.
26255         
26256         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
26257
26258         * appdomain.h (MonoJitInfo): New field to determine whenever the
26259         code is domain neutral.
26260         
26261 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
26262
26263         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
26264
26265 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
26266
26267         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
26268         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
26269         Avoid caching the result since strings must be domain specific. Fixes
26270         #48050.
26271
26272 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
26273
26274         * marshal.c (mono_marshal_init): Make this callable multiple times
26275         since it is hard to find a correct place to call it.
26276
26277         * object.c (mono_runtime_class_init): Execute static constructors in
26278         the correct appdomain.
26279
26280         * image.c (build_guid_table): Handle the case when multiple images have
26281         the same GUID.
26282
26283 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26284
26285         * icall.c: added a couple of icalls for System.Web.
26286
26287 2003-08-28  Martin Baulig  <martin@ximian.com>
26288
26289         * icall.c (ves_icall_Type_BindGenericParameters): Use
26290         `klass->generic_inst' instead of `&klass->byval_arg' in the
26291         mono_type_get_object() call.  The returned type must be
26292         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
26293
26294 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
26295
26296         * NOTES: New file.
26297
26298         * object.c (mono_class_proxy_vtable): Make it thread safe.
26299
26300         * pedump.c: Fix warning.
26301
26302         * object.c appdomain.h: Get rid of metadata_section. 
26303         It is no longer needed and it was causing deadlocks with domain->lock.
26304
26305         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
26306
26307 2003-08-26  Martin Baulig  <martin@ximian.com>
26308
26309         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
26310
26311 2003-08-26  Martin Baulig  <martin@ximian.com>
26312
26313         * pedump.c (main): Call mono_metadata_init(),
26314         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
26315         and mono_loader_init().
26316
26317 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
26318
26319         * loader.h: Add missing include to fix build.
26320
26321         * image.h: mono_image_load_references is no more.
26322
26323         * assembly.c: Reworked assembly loading to make it really thread safe.
26324         After these changes, the assembly returned by mono_assembly_open is
26325         fully initialized, i.e. all its references assemblies are loaded.
26326
26327         * assembly.c (mono_image_load_references): Renamed to 
26328         mono_assembly_load_references, and made private, since clients no
26329         longer need to call it.
26330
26331         * class.c: Removed calls to mono_assembly_load_references, since it was
26332         a source of deadlocks.
26333
26334         * loader.h loader.c class.h class.c: Protect data structures using a 
26335         new lock, the loader lock.
26336
26337         * class.c (mono_class_setup_vtable): Create temporary hash tables and
26338         GPtrArrays only when needed.
26339
26340         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
26341         into empty structures by mcs. Fixes pinvoke7.cs.
26342         
26343         * domain.c (mono_init): Call a new initialization function.
26344
26345         * appdomain.c (mono_runtime_init): Call the new initializer function
26346         of the marshal module.
26347
26348         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
26349         inserted into empty structures by mcs. Fixes pinvoke7.cs.
26350
26351         * marshal.h marshal.c: Added locks around the wrapper caches to make
26352         this module thread safe.
26353
26354         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
26355         this argument. Fixes pinvoke1.exe.
26356
26357 2003-08-25  Lluis Sanchez <lluis@ximian.com>
26358
26359         * object.h: Added call_type field to MonoMethodMessage and the corresponding
26360         enumeration of values. Removed fields to store remote call output values in
26361         MonoAsyncResult. Not needed any more.
26362         * object.c: Initialize call_type and async_result fields in mono_message_init.
26363         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
26364         dispatching the message.
26365         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
26366         async call to finish. To do it use a message with EndInvoke call type.
26367
26368 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
26369
26370         * loader.h loader.c (mono_method_hash_marhal_info): New function which
26371         determines whenever a method has marshalling info.
26372
26373 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26374
26375         * assembly.c: fix the build on windows.
26376
26377 2003-08-22 Lluis Sanchez <lluis@ximian.com>
26378
26379         * object.cs: Fixed bug #47785.
26380
26381 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
26382
26383         * string-icalls.c (StringReplace): If their are no occurances of
26384         the old string found return a reference to the supplied
26385         string. This saves some memory and matches MS behavoir.
26386         
26387 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26388
26389         * socket-io.c: fixed compilation for systems that define AF_INET6
26390         and don't define SOL_IP/SOL_IPV6.
26391
26392 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
26393
26394         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
26395         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
26396
26397         * rawbuffer.c rawbuffer.h: Make this module thread safe.
26398
26399         * domain.c: Make this module thread safe.
26400
26401         * domain.c (mono_init): Call new initialization function.
26402
26403         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
26404         reference types too. Fixes #38812.
26405
26406         * image.c (mono_image_init): Fixed warnings.
26407
26408         * class.c (mono_class_from_typeref): Handle assembly load failure
26409         correctly.
26410
26411         * appdomain.c (add_assemblies_to_domain): Handle the case when
26412         the references of an assembly are not yet loaded.
26413
26414         * metadata.c image.c assembly.c: Moved initialization of global
26415         variables to a separate function called at startup since lazy 
26416         initialization of these variables is not thread safe.
26417         
26418         * image.c assembly.c: Made this module thread safe by adding locks in 
26419         the appropriate places.
26420
26421         * domain.c (mono_init): Call the new initialization functions of the
26422         three modules.
26423
26424 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
26425
26426         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
26427           make a direct call. It is proxy's work to make the call asynchronous.
26428           mono_delegate_end_invoke(): If the targe is a proxy, just collect
26429           the return values.
26430         * object.cs: mono_method_call_message_new(): read AsyncResult and
26431           state object from parameters list, if this info is requested.
26432         * object.h: Added fields to store remote call output values in
26433           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
26434
26435 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
26436
26437         * object.h: add needed fields to MonoThread.
26438         * threads.c, threads.h: allow registering a function to cleanup data
26439         allocated per thread by the JIT.
26440
26441 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
26442
26443         * loader.h: portability fix by Bernie Solomon
26444         * <bernard@ugsolutions.com>.
26445
26446 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
26447
26448         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
26449         return a MonoArray. This simplifies the code and also ensures that
26450         the cache allways contains an object reference as a value.
26451
26452         * icall.c (ves_icall_get_parameter_info): Simplified using the new
26453         function.
26454
26455 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26456
26457         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
26458         fixes a problem with byte ordering when getting the address family for
26459         a socket.
26460
26461 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
26462
26463         * .cvsignore: Added monosn.
26464
26465         * reflection.h reflection.c loader.c: Added support for parameter
26466         marshalling to dynamically created types. Fixes #47295.
26467
26468 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
26469
26470         * rand.c: remove useless warnings.
26471
26472 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
26473
26474         * class.c: implemented ldtoken for methods and fieldrefs.
26475
26476 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26477
26478         * threadpool.c: when mono_async_invoke was called, no one took care of
26479         monitoring the queue. So if the method invoked took some time and we
26480         got new async invoke requests after 500 ms (the thread created waited
26481         that long in WaitForSingleObject), the new async invoke was not called
26482         until the previous one finished.
26483
26484         This is fixed now. Thanks to Totte for helping with it.
26485
26486 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26487
26488         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
26489
26490 2003-08-11  Martin Baulig  <martin@ximian.com>
26491
26492         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
26493
26494 2003-08-06  Martin Baulig  <martin@ximian.com>
26495
26496         * mono-debug-debugger.c: Added support for static fields,
26497         properties and methods.
26498
26499 2003-08-06  Martin Baulig  <martin@ximian.com>
26500
26501         * mono-debug-debugger.c: Don't store the MonoString's vtable to
26502         make this work for applications with multiple application domains.
26503
26504 2003-08-04  Martin Baulig  <martin@ximian.com>
26505
26506         * mono-debug-debugger.c: Completely reworked the type support; the
26507         most important thing is that we're now just using one single
26508         `MonoType' instance per type.
26509
26510 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
26511
26512         * mono-endian.h, mono-endian.c, icall.c: Added icall
26513         ves_icall_System_Double_AssertEndianity to assert double word endianity
26514         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
26515
26516 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
26517
26518         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
26519         support, icalls and fixes.
26520
26521 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
26522
26523         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
26524         classes that are a punctuation character in .NET is not the same a
26525         g_unichar_ispunct.
26526
26527 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
26528
26529         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
26530
26531 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
26532
26533         * icall.c: Add new MemCopy internalcall.
26534         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
26535         Simplified code; It is not necessary to handle all the cases here,
26536         as the C# code takes care of it.  Only handle the case of the name
26537         resource embedded into the assembly.
26538
26539         Changed signature to return the data pointer and the size of the
26540         data. 
26541
26542 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
26543
26544         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
26545         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
26546
26547 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
26548
26549         * socket-io.c: ignore EINTR error in select.
26550
26551 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
26552
26553         * class.h, class.c: removed unused subclasses field in MonoClass.
26554
26555 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
26556
26557         * icall.c: improve fix of get_base_definition(). If the parent class
26558           doesn't have the mehod, look at the parent of the parent.
26559         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
26560           to check if a parameter is an in or out parameter
26561           (PARAM_ATTRIBUTE_IN is not set by default).
26562           mono_method_return_message_restore(): Use mono_class_value_size to
26563           get the size of a value type. mono_type_stack_size (parameterType)
26564           does not return the correct value if parameterType is byRef.
26565           mono_load_remote_field(), mono_load_remote_field_new(),
26566           mono_store_remote_field(), mono_store_remote_field_new():
26567           raise exception if the remote call returns an exception.
26568
26569 2003-07-28  Martin Baulig  <martin@ximian.com>
26570
26571         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
26572         method.  This is a wrapper around mono_runtime_invoke() which
26573         boxes the instance object if neccessary.
26574
26575 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
26576
26577         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
26578         metadata.h, row-indexes.h, verify.c: first cut of generics support.
26579
26580 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
26581
26582         * icall.c: disable mcs bug workaround.
26583
26584 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
26585
26586         * object.c (mono_runtime_class_init): Take the metadata_section
26587         mutex before obtaining the domain mutex.
26588
26589         * appdomain.h: Added definition of metadata_section mutex here. 
26590
26591         * object.c: define metadata_mutex here.
26592
26593 2003-07-24  Ravi Pratap  <ravi@ximian.com>
26594
26595         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
26596         fixed.
26597
26598 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
26599
26600         * reflection.c: Fix bug #46669
26601
26602 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26603
26604         * exception.c:
26605         * exception.h:
26606         * icall.c:
26607         * object.h: fill in the type name for TypeLoadException.
26608
26609 2003-07-23  Ravi Pratap  <ravi@ximian.com>
26610
26611         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
26612         relationship between TypeBuilders while compiling corlib) and bug
26613         45993 (Array types returned from the runtime while compiling
26614         corlib were from the loaded corlib).
26615
26616 2003-07-22  Martin Baulig  <martin@ximian.com>
26617
26618         * mono-debug-debugger.c: Reworked the type support a bit more;
26619         distinguish between types and classes.
26620
26621 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
26622
26623         * icall.c: add IsArrayImpl icall.
26624
26625 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
26626
26627         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
26628         initializing real_size only once. Also fix bug #46602.
26629
26630 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
26631
26632         * object.c: Renamed mono_metadata_section to metadata_section.
26633
26634 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
26635
26636         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
26637           empty array if the type is an array. Fixed.
26638           ves_icall_MonoMethod_get_base_definition: if the base method
26639           is abstract, get the MethodInfo from the list of methods of
26640           the class.
26641         * reflection.c: ParameterInfo.PositionImpl should be zero-based
26642           and it was 1-based. Fixed in mono_param_get_objects.
26643
26644 2003-07-20  Martin Baulig  <martin@ximian.com>
26645
26646         * mono-debug.h: Set version number to 31.
26647         (mono_debug_init): Added `MonoDomain *' argument.
26648
26649         * mono-debug-debugger.c: Reworked the type support; explicitly
26650         tell the debugger about builtin types; pass the `klass' address to
26651         the debugger.
26652
26653 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
26654
26655         * image.c: Allow new metadata tables to be loaded without a
26656         warning. Also update the warning message to give the new constant value.
26657                 
26658 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
26659
26660         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
26661         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
26662         array type representation changes.
26663
26664 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
26665
26666         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
26667         on Environment.Exit () call.
26668
26669 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
26670
26671         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
26672         requires a matching corlib.
26673
26674 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
26675
26676         * Changelog: My editor decided to add a CR to each line. Sorry about that.
26677           Committed again without the CRs.
26678         
26679 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
26680
26681         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
26682           getting it from the "this" socket instance. Did not work
26683           if the socket is a subclass of Socket.
26684           Also fixed bug #35371.
26685
26686 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
26687
26688         * metadata.c: fixed size for TypedByRef.
26689         * loader.c: when searching for a method, consider the vararg amrker.
26690         * unicode.c, decimal.c: constify some arrays.
26691
26692 2003-07-15  Dick Porter  <dick@ximian.com>
26693
26694         * socket-io.c: Fixed compilation for gcc < 3.2.
26695
26696         Fixed compilation for machines that don't have AF_INET6 (thanks to
26697         Bernie Solomon <bernard@ugsolutions.com> for that part.)
26698
26699         Fixed compile warnings.
26700         
26701         Fixed formatting and line endings.
26702
26703 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
26704
26705         * socket-io.h:
26706         * socket-io.c: Added IPv6 support.
26707
26708 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
26709
26710         * class.c (mono_class_is_assignable_from): New function to implement
26711         the is_assignable_from logic. Used by mono_object_isinst, 
26712         Type::IsAssignableFrom () and the interpreter.
26713
26714         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
26715         Object, even interfaces.
26716         
26717         * object.c (mono_object_isinst): Implement in terms of 
26718         is_assignable_from.
26719
26720         * icall.c (ves_icall_type_is_assignable_from): New icall.
26721
26722 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
26723
26724         * domain.c (foreach_domain): fix compiler warning.
26725
26726 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
26727
26728         * image.c (load_metadata_ptrs): use g_strndup because strndup is
26729         not available on all plattforms
26730
26731 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
26732
26733         * image.h image.c: Store the metadata version string in MonoImage.
26734         * icall.c: New icall to retrieve the image version.
26735         * reflection.c (create_dynamic_image): Fill in the image version field
26736         * reflection.c (build_compressed_metadata): Use the image version
26737         from the image structure.
26738
26739 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26740
26741         * appdomain.c: modified comment.
26742         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
26743         That will be its last iteration when mono_gc_cleanup is called from
26744         mono_runtime_cleanup and before the domain is unloaded.
26745
26746         Fixes bug #45962.
26747
26748 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
26749
26750         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
26751         attributes.
26752
26753 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
26754
26755         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
26756         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
26757         Bernie Solomon <bernard@ugsolutions.com>.
26758
26759 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
26760
26761         * object.c, object.h: provide mono_object_new_fast() for faster
26762         allocation in some special cases.
26763
26764 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
26765
26766         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
26767         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
26768
26769 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
26770
26771         * threadpool.c: fix leaks.
26772
26773 2003-07-01  Dick Porter  <dick@ximian.com>
26774
26775         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
26776         using MonoGHashTables.  Fixes threadpool bug posted to list.
26777
26778 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
26779
26780         * image.h, image.c: added support to load an assembly from a byte array.
26781         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
26782         assembly bundle support.
26783
26784 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
26785
26786         * threadpool.c (mono_thread_pool_add): keep a reference to the
26787         AsyncResult to prevent GC
26788
26789 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
26790
26791         * class.c: leak fix.
26792
26793 2003-06-25  Dick Porter  <dick@ximian.com>
26794
26795         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
26796         for the async object, the WaitHandle object will close the handle.
26797         Fixes bug 45321.
26798
26799 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
26800
26801         * class.c: in mono_array_class_get (), lookup from the hash with the
26802         same type we insert: this works around a bug in
26803         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
26804         lluis. The real fix will have to wait for after the release.
26805
26806 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
26807
26808         * icall.c: fix memory leak when getting type members.
26809
26810 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
26811
26812         * reflection.c: added more pubtoken special cases.
26813
26814 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
26815
26816         * class.c: handle field offset correctly when class size
26817         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
26818
26819 2003-06-20  Martin Baulig  <martin@ximian.com>
26820
26821         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
26822         *image' field.
26823
26824 2003-06-20  Martin Baulig  <martin@ximian.com>
26825
26826         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
26827
26828 2003-06-20  Martin Baulig  <martin@ximian.com>
26829
26830         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
26831         just distinguish between variables in registers and variables at
26832         an offset relative to a register.
26833
26834 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26835
26836         * icall.c: #ifdef out latest changes until mcs is fixed.
26837
26838 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
26839
26840         * icall.c: return members in metadata order.
26841
26842 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
26843
26844         * icall.c: avoid infinite loop in GetTimeZoneData.
26845
26846 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
26847
26848         * icall.c: added Marshal.Prelink/All icalls.
26849
26850 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
26851
26852         * object.c, object.h: fix warnings and do some overflow checking
26853         when creating arrays.
26854
26855 2003-06-17  Dick Porter  <dick@ximian.com>
26856
26857         * file-io.h:
26858         * file-io.c: File attributes need to be tweaked slightly when
26859         passed from the managed to the w32 world.
26860
26861 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
26862         * profiler.h profiler-private.h profiler.c: Rework last patch
26863         based on suggestion by Paolo.
26864         
26865 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
26866
26867         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
26868         instruction level coverage data collection.
26869         * profiler.h profiler.c (: Added new callback function which can be
26870         used by the profiler to limit which functions should have coverage
26871         instrumentation.
26872         * profiler.c (mono_profiler_load): Call g_module_build_path to
26873         generate the file name of the profiler library.
26874
26875 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
26876
26877         * profiler.c, profiler.h, profiler-private.h: added basic block 
26878         coverage profiling API.
26879
26880 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
26881
26882         * reflection.c (mono_reflection_create_runtime_class): Add support
26883         for events in dynamically generated code.
26884
26885         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
26886         not allocated.
26887
26888 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
26889
26890         * icall.c: when getting timezone info, return reasonable values if we
26891         can't get the actual data.
26892
26893 2003-06-14  Dick Porter  <dick@ximian.com>
26894
26895         * threads.c (start_wrapper): Remove the reference to the thread
26896         object in the TLS data, so the thread object can be finalized.
26897         This won't be reached if the thread threw an uncaught exception,
26898         so those thread handles will stay referenced :-( (This is due to
26899         missing support for scanning thread-specific data in the Boehm GC
26900         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
26901
26902 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
26903
26904         * reflection.c: ensure streams and tables are first allocated with
26905         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
26906
26907 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
26908
26909         * icall.c: fixed GetElementType for byrefs (bug# 44792).
26910
26911 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
26912
26913         * reflection.c (mono_reflection_create_runtime_class): Add support for
26914         properties to dynamically created classes.
26915         * reflection.c: Fix a few places where non-MonoObjects were inserted
26916         into the tokens hashtable.
26917
26918 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
26919
26920         * object.c: some support to handle out of memory exceptions.
26921
26922 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
26923
26924         * marshal.c (mono_marshal_get_native_wrapper): support reference
26925         return types
26926
26927 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
26928
26929         * object.h, object.c: more portability stuff from Bernie Solomon.
26930         Unexport mono_object_allocate(). Added mono_object_unbox ().
26931         Set exitcode when an unhandled exception is thrown.
26932
26933 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
26934
26935         * marshal.c (mono_marshal_get_native_wrapper): use custom
26936         marshaler for return types.
26937
26938 2003-06-10  Dick Porter  <dick@ximian.com>
26939
26940         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
26941         ip_mreq is available
26942
26943 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
26944
26945         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
26946         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
26947         by Bernie Solomon <bernard@ugsolutions.com>.
26948
26949 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
26950
26951         * gc.c (mono_gc_init): Avoid error message on shutdown when
26952         GC_DONT_GC=1 is used.
26953
26954         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
26955         New icall to return the GUID of a module.
26956
26957 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
26958
26959         * class.c: ensure instance size always includes the parent's size
26960         even whem class size is set explicitly (fixes bug#44294).
26961
26962 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
26963
26964         * profiler.h, profiler.c: made the simple profiler thread-safe,
26965         get more accurate timing info. Allow the loading of an
26966         externally-developed profiler module.
26967
26968 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
26969
26970         * marshal.c (mono_marshal_get_native_wrapper): improved
26971         class/byref arguments.
26972         (mono_marshal_get_native_wrapper): better string marshaling support.
26973
26974 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
26975
26976         * class.c: ensure .pack and .size are handled correctly and
26977         simplified layout of static fields.
26978
26979 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
26980
26981         * appdomain.c
26982         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
26983
26984         * loader.c (mono_lookup_pinvoke_call): look for modules in the
26985         current directory (fix bug 44008)
26986
26987 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
26988
26989         * marshal.c (mono_marshal_get_native_wrapper): started support for
26990         custom marshalers.
26991         (mono_delegate_to_ftnptr): consider marshalling specifications
26992
26993 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
26994
26995         * reflection.c, reflection.h: emit custom marshal info.
26996
26997 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26998
26999         * object.c: free the GError.
27000         * icall.c: added CloseEvent_internal.
27001         * threads.[ch]:
27002         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
27003         call.
27004
27005 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
27006
27007         * loader.c (mono_method_get_signature): Add support for dynamic
27008         assemblies.
27009
27010 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
27011
27012         * reflection.c: fixed bug #43905.
27013
27014 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
27015
27016         * class.c, domain.c, icall.c, metadata.h, object.h: support for
27017         handling TypedReference and ArgIterator.
27018         * loader.c, loader.h: added function to get signature at call site.
27019
27020 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
27021
27022         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
27023         data readonly. Buglets and warning fixes. Some MethodSpec support.
27024
27025 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
27026
27027         * class.h, class.c, object.c: remove relative numbering support.
27028
27029 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
27030
27031         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
27032         free the string, until we get a chance to fix Gtk#
27033
27034 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27035
27036         * marshal.c: revert last patch.
27037
27038 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
27039
27040         * icall.c: updates for new mono_class_vtable() not calling
27041         the type constructor anymore.
27042
27043 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
27044
27045         * object.h, object.c: separate vtable creation from type
27046         initialization. Make running the .cctor thread safe.
27047
27048 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
27049
27050         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
27051
27052 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
27053
27054         * loader.c (mono_get_method): consider calling convention
27055
27056 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
27057
27058         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
27059         to return the invisible global type for a module.
27060
27061         * reflection.c (mono_image_build_metadata): Emit global fields too.
27062
27063 2003-05-20  Peter Williams  <peterw@ximian.com>
27064
27065         * loader.c (mono_lookup_internal_call): Add a few newlines.
27066
27067 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
27068
27069         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
27070         literal strings.
27071
27072         * appdomain.c (set_domain_search_path): Recalculate search path when
27073         AppDomainSetup.PrivateBinPath changes.
27074
27075         * object.c (mono_class_compute_gc_descriptor): It turns out some
27076         parts of the class libs (like System.Thread) holds pointers to
27077         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
27078         to treat native int a pointer type here.
27079         
27080 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
27081
27082         * appdomain.h, domain.c: add hashtable for jump target resolution.
27083
27084 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
27085
27086         * reflection.h reflection.c icall.c: Added new icalls 
27087         GetManifestResourceInfoInternal, GetModulesInternal and support
27088         infrastructure.
27089
27090 2003-05-16  Dick Porter  <dick@ximian.com>
27091
27092         * icall.c:
27093         * file-io.h:
27094         * file-io.c: Implement System.IO.MonoIO::GetTempPath
27095
27096 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
27097
27098         * object.c: mono_store_remote_field: little fix to previous patch.
27099
27100 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
27101
27102         * class.c: add constructors to array classes.
27103         * icall.c: special case array construction for InternalInvoke (),
27104
27105 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
27106
27107         * class.h class.c reflection.c object.c: Added support for field
27108         defaults in dynamically generated classes.
27109
27110 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
27111
27112         * reflection.c: properly encode charset for ddlimport.
27113
27114 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
27115
27116         * threads.c: allow compiling without GC.
27117
27118 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
27119
27120         * appdomain.h, object.c, object.h, threads.c, threads.h: added
27121         handling of thread static data.
27122
27123 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
27124
27125         * reflection.h, reflection.c: added mono_custom_attrs_free ().
27126
27127 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
27128
27129         * class.c (mono_array_class_get): always set the serializable flags
27130         (mono_array_class_get): always set the SEALED attribute for array types
27131
27132 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
27133
27134         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
27135         attributes (fix for bug 42021).
27136
27137 2003-05-12  Dick Porter  <dick@ximian.com>
27138
27139         * gc.c: Don't run finalizers when the finalizer thread is
27140         finishing up, because the default domain has already been
27141         destroyed.
27142
27143 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
27144
27145         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
27146         value is null, we should throw an exception.   This is slightly
27147         different than the other conventions used for the constructor.
27148
27149 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27150
27151         * socket-io.c: fixed windows build.
27152
27153 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27154
27155         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
27156
27157 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
27158
27159         * object.c (mono_string_new_wrapper): Compatibility fix for MS
27160         compilers.
27161
27162 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
27163
27164         * class.c (mono_class_layout_fields): Add experimental GC aware
27165         auto layout facility. Requires class library changes to work correctly.
27166
27167         (mono_class_setup_vtable): Avoid overriding explicit interface
27168         method implementations. Fixes iface3.exe test.
27169
27170         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
27171         object reference.
27172         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
27173         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
27174
27175         * metadata.h: Add new type classification macro which determines
27176         whenever the type holds an object reference.
27177
27178 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
27179
27180         * marshal.c (mono_marshal_get_native_wrapper): cleanups
27181
27182 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
27183
27184         * gc.c (finalizer_thread): Work around a GC bug.
27185
27186 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
27187
27188         * marshal.c (emit_struct_conv): allow unions
27189
27190         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
27191
27192 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
27193
27194         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
27195
27196 2003-05-06  Martin Baulig  <martin@ximian.com>
27197
27198         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
27199
27200 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27201
27202         * socket-io.c:
27203         (Select_internal): allow NULLs, don't create arrays if not needed.
27204         Coupled with Socket.cs changes.
27205
27206         * threadpool.c:
27207         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
27208         register a finalizer for it that will close the semaphore handle. This
27209         fixes the leak and make Lupus' test run with > 4080 loops.
27210
27211 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
27212
27213         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
27214         Jerome Laban (bug #42287)
27215
27216 2003-05-02  Martin Baulig  <martin@ximian.com>
27217
27218         * debug-mono-symfile.h
27219         (MonoSymbolFile): Moved declaration into mono-debug.h.
27220         (MonoDebugMethodJitInfo): Likewise.
27221         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
27222         argument.
27223         (_mono_debug_address_from_il_offset): Take a
27224         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
27225
27226         * mono-debug.h
27227         (MonoDebugDomainData): New struct.
27228         (mono_debug_get_domain_data): New function.
27229         (mono_debug_add_method): Take an additional `MonoDomain *'
27230         argument.
27231         (mono_debug_source_location_from_address): Likewise.
27232         (mono_debug_il_offset_from_address): Likewise.
27233         (mono_debug_address_from_il_offset): Likewise.
27234
27235 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
27236
27237         * reflection.c: one more check for null type in custom attrs.
27238
27239 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27240
27241         * reflection.c: avoid warning (comparison is always false due to limited
27242         range of data type).
27243
27244 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27245
27246         * icall.c: throw an exception in Type.GetField if the argument 'name'
27247         is NULL.
27248
27249 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
27250
27251         * reflection.c: fixed handling of enums in named arguments to custom
27252         attributes (bug #42123).
27253
27254 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
27255
27256         * reflection.c: use the right array element type and handle
27257         a null for a Type argument, too.
27258
27259 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
27260
27261         * reflection.c: handle arrays as arguments to custom attributes.
27262
27263 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
27264
27265         * reflection.c: handle a string value in a custom attr
27266         ctor that takes an object.
27267
27268 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
27269
27270         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
27271         (fix bug #42063)
27272
27273 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
27274
27275         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
27276
27277 2003-04-27  Martin Baulig  <martin@ximian.com>
27278
27279         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
27280         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
27281         MONO_DEBUGGER_EVENT_BREAKPOINT.
27282         (mono_breakpoint_trampoline_code): Removed.
27283         (mono_debugger_event_handler): The last argument is now a
27284         `guint32'.
27285         (mono_debugger_insert_breakpoint_full): Removed the
27286         `use_trampoline' argument.
27287         (mono_debugger_method_has_breakpoint): Likewise.
27288         (mono_debugger_trampoline_breakpoint_callback): Renamed to
27289         mono_debugger_breakpoint_callback(); take the method and
27290         breakpoint number as arguments.
27291
27292 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
27293
27294         * metadata.c: fix off by one when loading parameters attributes.
27295
27296 2003-04-24  Martin Baulig  <martin@ximian.com>
27297
27298         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
27299
27300 2003-04-24  Martin Baulig  <martin@ximian.com>
27301
27302         * mono-debug-debugger.c: Moved all code which interacts with the
27303         Mono Debugger here.
27304
27305         * debug-mono-symfile.c: This code now just deals with the symbol
27306         file itself, the debugger code is now in mono-debug-debugger.c.
27307
27308 2003-04-23  Martin Baulig  <martin@ximian.com>
27309
27310         * mono-debug.c (mono_debug_source_location_from_il_offset):
27311         New method; like mono_debug_source_location_from_address(), but
27312         takes an IL offset instead of a machine address.
27313
27314 2003-04-23  Martin Baulig  <martin@ximian.com>
27315
27316         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
27317         `line' field; this is now computed by the debugger.
27318
27319 2003-04-23  Martin Baulig  <martin@ximian.com>
27320
27321         * mono-debug.[ch]: New files.  This is the new debugging interface.
27322
27323         * mono-debug-debugger.[ch]: New files.  Moved all code which
27324         interacts with the Mono Debugger here.
27325
27326 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
27327
27328         * domain.c (mono_init): initialize mono_defaults.monitor_class
27329
27330 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
27331
27332         * reflection.c (method_encode_code): Add a spicy exception to help
27333         future compiler authors.
27334
27335 2003-04-21  Martin Baulig  <martin@ximian.com>
27336
27337         * icall.c
27338         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
27339         Make this work with relative pathnames; g_filename_to_uri() needs
27340         an absolute filename.
27341
27342 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
27343
27344         * icall.c: Track name changes in Object and ValueType.
27345
27346 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
27347
27348         * metadata.c (mono_type_stack_size): size should be a multiple of
27349         sizeof (gpointer)
27350
27351 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27352
27353         * gc.c:
27354         (internal_domain_finalize): moved into mono_domain_finalize. No need
27355         to create another thread because the finalizers will be run in the
27356         finalizer thread.
27357         
27358         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
27359         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
27360         to be run (MS does this too).
27361
27362 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
27363
27364         * object.c (mono_class_compute_gc_descriptor): Update comment.
27365
27366         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
27367
27368         * image.h: Add synchronized wrapper cache.
27369
27370         * image.c (do_mono_image_open): Initialize cache.
27371
27372         * reflection.c (create_dynamic_mono_image): Initialize cache.
27373
27374 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27375
27376         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
27377         ves_icall_System_Buffer_ByteLengthInternal.
27378
27379 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
27380
27381         * reflection.c: setup klass->nested_in earlier. Allow
27382         a dash in the assembly name.
27383
27384 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
27385
27386         * metadata.c (mono_type_to_unmanaged): dont access
27387         type->data.klass for MONO_TYPE_OBJECT
27388         (mono_type_to_unmanaged): consider System.Delegate class
27389
27390 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
27391
27392         * class.c: just setup supertypes in the proper place instead of
27393         initializing the full element class for arrays.
27394
27395 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
27396
27397         * class.c: ensure the element class of arrays is initialized.
27398         Setup the supertype info for array classes, too.
27399
27400 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
27401
27402         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
27403
27404 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27405
27406         * Makefile.am: re-added -m option when running cygpath. This way,
27407         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
27408         separator.
27409         * mono-config.c: same codepath for locating mono config file for WIN32
27410         and the rest.
27411         * assembly.c: if mono_assembly_setrootdir is called, don't override
27412         the value set.
27413
27414 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27415
27416         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
27417         MONO_ASSEMBLIES variable.
27418
27419 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
27420
27421         * icall.c: added Assembly::GetNamespaces() icall.
27422
27423 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27424
27425         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
27426
27427 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
27428
27429         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
27430         * object.c: fixed bug in the construction of vtable for proxies
27431
27432 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
27433
27434         * object.c (mono_array_new): Mark mono_array_new as an icall.
27435
27436 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27437
27438         * class.c: fixed test for public method when overriding interfaces.
27439         Closes bug #40970.
27440
27441 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
27442
27443         * appdomain.h, domain.c: added mono_domain_foreach() to
27444         be able to access the currently loaded appdomains.
27445         * object.c: make string interning work across sppdomains.
27446         Mark some functions for use as icalls.
27447
27448 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
27449
27450         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
27451
27452         * reflection.h reflection.c: Allocate long living data using 
27453         GC_MALLOC_ATOMIC so the collector does not need to scan it.
27454
27455         * reflection.c: Double the allocation size in streams instead of
27456         increasing it, to prevent unneccesary copying on large assemblies.
27457         
27458         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
27459         creation if the assembly does not have the Run flag set.
27460
27461 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
27462
27463         * class.h: avoid the C++ keywords in header files (Jerome Laban
27464         spotted and fixed this).
27465
27466 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27467
27468         * object.c:
27469         (mono_unhandled_exception): fill in the arguments for the
27470         UnhandledException event. Only trigger that event for the default
27471         domain (as MS does).
27472
27473 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
27474
27475         * object.c: Improve typed allocation stuff based on suggestions from
27476         Paolo. Also turn it on if the GC library supports it.
27477
27478 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
27479
27480         * object.c object.h class.h: Added experimental typed allocation
27481         facility using the interfaces in gc_gcj.h.
27482
27483         * os/gc_wrapper.h: Added new include files.
27484         
27485 2003-04-03  Martin Baulig  <martin@ximian.com>
27486
27487         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
27488         which is not yet enabled by default.
27489
27490         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
27491         functions.
27492         (mono_gc_lock, mono_gc_unlock): New static functions.
27493
27494         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
27495         functions; stop/start the world for the garbage collector.  This
27496         is using the windows API; we need to complete the SuspendThread()/
27497         ResumeThread() implementation in the io-layer to make this work on Unix.
27498         (mono_gc_push_all_stacks): New public function; tells the garbage
27499         collector about the stack pointers from all managed threads.
27500
27501 2003-04-03  Martin Baulig  <martin@ximian.com>
27502
27503         * object.h (MonoThread): Added `gpointer stack_ptr'.
27504
27505         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
27506
27507 2003-04-03  Martin Baulig  <martin@ximian.com>
27508
27509         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
27510
27511 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
27512
27513         * reflection.c (typebuilder_setup_fields): Initialize field.first and
27514         field.last.
27515
27516 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
27517
27518         * loader.c (mono_lookup_internal_call): Report the corlib that is
27519         out of sync.
27520
27521 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
27522
27523         * icall.c (ves_icall_type_GetTypeCode): fixed check for
27524         System.DBNull (it's class not valuetype).
27525
27526 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
27527
27528         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
27529         if the array method was already assigned a token (fixes bug#40646).
27530
27531 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
27532
27533         * reflection.c (mono_reflection_get_type): Attempt type resolve even
27534         if no assembly is given.
27535
27536 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
27537
27538         * metadata.h: Added the new tables.
27539
27540         * row-indexes.h: Added definitions for new tables.
27541
27542         * metadata.c: Add schemas for new tables, and add support for
27543         computing the sizes of them.
27544
27545         * class.c: Update for handling the new type cases.
27546
27547 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
27548
27549         * metadata.h (MONO_TYPE_IS_VOID): new macro
27550
27551 2003-03-31  Martin Baulig  <martin@ximian.com>
27552
27553         * threads.h (MonoThreadCallbacks): Added `thread_created'.
27554
27555         * threads.c (mono_thread_new_init): Call `thread_created' in the
27556         mono_thread_callbacks.
27557
27558 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
27559
27560         * loader.h: added marshalbyrefobject_class to mono_defaults
27561         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
27562         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
27563           generation of output parameters.
27564           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
27565         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
27566           contextbound and the target object belongs to the context of the caller.
27567         * object.h: added context and unwrapped_server variables in MonoRealProxy.
27568         * object.c: Implemented support for interfaces and abstract classes
27569           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
27570           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
27571
27572 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
27573
27574         * class.h class.c (mono_class_is_subclass_of): New function.
27575         
27576         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
27577         routines for most common case (calls from ArrayList::ToArray).
27578
27579         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
27580         routine so programs which call Environment::Exit() can be profiled.
27581
27582         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
27583         Added MONO_ARCH_SAVE_REGS.
27584
27585         * icall.c (ves_icall_type_is_subtype_of): Use new function.
27586
27587 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
27588
27589         * blob.h: Add a couple of new MonoType types definitions.
27590
27591         * tabledefs.h: Add a couple of new call convs.
27592
27593 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
27594
27595         * reflection.h (MonoReflectionDynamicAssembly): track changes in
27596         the layout of the class.
27597
27598         * reflection.c (alloc_table): double the size on overflow to avoid
27599         unnecessary copying.
27600
27601         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
27602         avoid filling out metadata tables and blobs. Also set mb->ilgen to
27603         null so it can be garbage collected.
27604         
27605 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
27606
27607         * reflection.c (mono_reflection_get_type): Return the resolved type
27608         only if it is in the assembly we searched.
27609
27610         * reflection.c (ensure_runtime_vtable): Initialize method slots.
27611
27612         * class.c (mono_class_setup_vtable): Set the slot of the overriding
27613         method.
27614
27615 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27616
27617         * appdomain.c:
27618         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
27619         the right one is 'file:///blah', but MS allows it.
27620         * assembly.c:
27621         (mono_assembly_open): allow 'file://blah'
27622
27623         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
27624
27625 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
27626
27627         * socket-io.c: fixes bug #40310.
27628
27629 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
27630
27631         * reflection.c (mono_reflection_parse_type): handle deeply nested
27632         types correctly.
27633
27634         * reflection.c (mono_image_create_token): Use unique token values
27635         since they will be put into a hash table.
27636
27637         * class.c (mono_class_setup_vtable): If a method occurs in more than
27638         one place in the vtable, and it gets overriden, then change the
27639         other occurances too.
27640
27641         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
27642         object as return type.
27643
27644 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
27645
27646         * icall.c: Deleted "ToString" implementation for double and float
27647         because they are full implemented in managed code.
27648
27649 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
27650
27651         * reflection.c, reflection.h: implemented and exported functions
27652         to retrieve info about custom attributes.
27653
27654 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27655
27656         * appdomain.c: moved Uri handling to assembly.c
27657         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
27658         work when using a file Uri in *nix and windows.
27659
27660         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
27661         GetReferencedAssemblies.
27662
27663 2003-03-18  Dick Porter  <dick@ximian.com>
27664
27665         * icall.c: Rename a couple of internal calls
27666
27667         * threads.c: Set the thread state to Stopped when a thread exits.
27668         Fixes bug 39377.
27669
27670 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
27671
27672         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
27673         New icall.
27674
27675         * object.c (mono_class_vtable): fix warning.
27676
27677 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
27678
27679         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
27680
27681         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
27682         memory.
27683         (method_encode_clauses): Create exception info structures in the right
27684         order.
27685         (mono_reflection_setup_internal_class): Initialize supertypes field.
27686
27687         * class.c object.c: Handle interfaces which implement other interfaces 
27688         correctly.
27689
27690         * class.h class.c: Move the supertypes array initialization code into 
27691         a separate function so it can be used for dynamic types too. Also call
27692         it earlier, in mono_class_init(), since it can be used before the
27693         type is initialized.
27694
27695 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27696
27697         * Makefile.am:
27698         * assembly.c:
27699         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
27700
27701         * appdomain.c:
27702         * appdomain.h:
27703         * marshal.c:
27704         * object.c: remove warnings.
27705
27706 2003-03-13  Martin Baulig  <martin@ximian.com>
27707
27708         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
27709         (MonoDebugLexicalBlockEntry): New types.
27710
27711         * debug-mono-symfile.c
27712         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
27713
27714 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27715
27716         * process.c: ret can be any non-zero value accroding to MS doc.
27717
27718 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
27719
27720         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
27721         fixing a warning for a miss-used prototype, would have cause
27722         random memory corruption.
27723
27724 2003-03-07  Martin Baulig  <martin@ximian.com>
27725
27726         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
27727         getting really annoying ....
27728
27729 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
27730
27731         * reflection.c (fixup_method): added support for array methods.
27732
27733 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
27734
27735         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
27736         (pointed out by Michael Adams).
27737
27738 2003-03-04  Dick Porter  <dick@ximian.com>
27739
27740         * icall.c: Temporarily reverted the Double and Single ToString()
27741         change, because it broke nunit.
27742
27743 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
27744
27745         * object.h, threads.h: make include files compatible with C++
27746         (patch by Jerome Laban <jlaban@wanadoo.fr>).
27747
27748 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
27749
27750         * icall.c: Erased ToString helper functions for Double and Single.
27751         Now, that implementations ar all in managed code (Double and Single
27752         Formatters).
27753
27754 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
27755
27756         * appdomain.c: Added method for initializing the default context of
27757         a domain. Added internal call for getting the default context.
27758         * appdomain.h: Added context variable in MonoDomain struct.
27759         * domain.c: mono_domain_set also sets the default context of the domain
27760         * icall.c: Mapped internal method InternalGetDefaultContext.
27761         * object.c: mono_object_get_virtual_method returns always a remoting
27762         wrapper if the object is a transparent proxy.
27763         mono_runtime_invoke_array: when creating an object by calling the
27764         constructor, if the created object is a proxy, then the constructor should
27765         be called using the a remoting wrapper.
27766
27767 2003-03-03  Dick Porter  <dick@ximian.com>
27768
27769         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
27770         variable so it compiles on solaris.  Problem spotted by
27771         Christopher Taylor <ct@cs.clemson.edu>
27772
27773 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27774
27775         * appdomain.c:
27776         (get_info_from_assembly_name): don't leak value.
27777
27778         * icall.c:
27779         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
27780         result.
27781
27782 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
27783
27784         * assembly.c: export mono_image_load_references ().
27785         * class.c: handle function pointers. mono_class_from_name() now
27786         supports nested type names directly.
27787
27788 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
27789
27790         * reflection.h reflection.c: Encode already created dynamic methods 
27791         and fields correctly as a DEF instead of a REF.
27792
27793         * reflection.c: Get rid of the force_ref argument to 
27794         mono_image_typedef_or_ref since it was wrong in the first place.
27795
27796         * string-icalls.c: add error checking to string constructors according
27797         to the MSDN docs.
27798
27799         * reflection.c: Emit types in the order their TypeBuilders were 
27800         created. Previously, a new table index was assigned to each type before
27801         the tables were emitted. This was wrong because the signature blob
27802         might already refer to a type by its original table index.
27803
27804 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
27805
27806         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
27807         change.
27808         
27809 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27810
27811         * Makefile.am: make assemblies dir have \ instead of / on windows.
27812
27813 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
27814
27815         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
27816         iterate over the NESTEDCLASS table using a linear search since the
27817         table is not guaranteed to be sorted by the secondary key.
27818
27819         * class.c (mono_class_create_from_typedef): fixed up call to
27820         mono_metadata_nesting_typedef.
27821         
27822 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
27823
27824         * marshal.c (mono_string_to_byvalstr): clear the memory as
27825         suggested by Jerome Laban <jlaban@wanadoo.fr>
27826
27827 2003-02-26  Dick Porter  <dick@ximian.com>
27828
27829         * process.c: Cope with padding in .rsrc blocks
27830
27831 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
27832
27833         * metadata.h: reverted the filter_len change, it breaks reflection
27834         
27835 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
27836
27837         * metadata.h: added a new field to store the filter_len
27838         
27839
27840 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
27841
27842         * reflection.c: handle custom attributes for types and members
27843         created with Reflection.Emit (bug#38422).
27844
27845 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
27846
27847         * reflection.c: define RTSpecialName automatically for constructors for
27848         compatibility with MS.NET.
27849
27850         * reflection.c (mono_reflection_create_runtime_class): initialize
27851         nested_in field of dynamically created classes.
27852
27853 2003-02-22  Martin Baulig  <martin@ximian.com>
27854
27855         * debug-mono-symfile.h: Incremented version number.
27856
27857 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
27858
27859         * object.h icall.c process.c: fix warnings.
27860
27861 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
27862
27863         * appdomain.h appdomain.c:
27864         (mono_domain_try_type_resolve): split the 
27865         name_or_tb argument into a name and a tb argument.
27866         (mono_domain_has_type_resolve): new function to check whenever the
27867         application has registered a TypeResolve event handler.
27868         
27869         * icall.c reflection.h reflection.c: move the type resolve logic into
27870         mono_reflection_get_type () so it will be invoked when 
27871         Assembly::GetType () is called.
27872
27873         * reflection.c:
27874         (mono_reflection_get_type): renamed to get_type_internal.
27875         (mono_reflection_get_type): fixed type name generation so it works 
27876         for nested types too.
27877         (mono_reflection_get_type): call has_type_resolve () to avoid the 
27878         costly type name generation if there is no resolve event handler.
27879
27880 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
27881
27882         * class.c, image.c: load exported types from file references.
27883
27884 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
27885
27886         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
27887           used to cache the managed methods used to create proxies and make 
27888           remote invocation of methods.
27889         * class.h: Added in MonoVTable a flag to indicate that a class needs 
27890           to be remotely created.
27891         * object.c: Modified the method mono_class_vtable(). It now initializes 
27892           the remote flag of the vtable. Modified mono_object_new_specific(), 
27893           so now it checks the remote flag.
27894         * icall.c: Added a couple of internal methods, one for enabling instance 
27895           creation interception for a type, and one for creating objects bypassing
27896           the remote check.
27897
27898 2003-02-18  Martin Baulig  <martin@ximian.com>
27899
27900         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
27901         New interncall to get a method's metadata token.
27902
27903         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
27904         New interncall for the debugger.
27905
27906 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
27907
27908         * class.c (mono_class_setup_vtable): allocate supertype array
27909
27910 2003-02-18  Martin Baulig  <martin@ximian.com>
27911
27912         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
27913
27914 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27915
27916         * reflection.c:
27917         (assembly_name_to_aname): jump over unknown properties (i've found
27918         something like: 'type, assembly, version=xxx, custom=null, public...',
27919         so now will ignore custom=null and still get the rest of the values).
27920
27921 2003-02-17  Dick Porter  <dick@ximian.com>
27922
27923         * threads.c: Have Thread.Start() wait for a semaphore to signal
27924         that the thread has set up all its local data.  This fixes bug
27925         34323, where Abort() raced the new thread's TLS data.
27926
27927         Also removes the handle_store() call from start_wrapper, because
27928         threads are now always created suspended and there is no longer a
27929         race between the parent and child threads to store the info.
27930
27931 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
27932
27933         * image.c: explain the #- heap issue in a message, hopefully
27934         avoiding FAQs on mono-list.
27935
27936 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27937
27938         * icall.c:
27939         (GetEntryAssembly): if the domain has not invoked
27940         AppDomain.ExecuteAssembly yet, return the assembly of the default
27941         AppDomain.
27942
27943 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
27944
27945         * class.c (mono_ldtoken): make it work in dynamic assemblies.
27946
27947 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
27948
27949         * metadata.c, reflection.c: simple speedup to type hash
27950         and equals code.
27951
27952 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
27953
27954         * image.c, image.h, class.c, assembly.c: move module loading
27955         to MonoImage. When loading metadata, consider alignemnet from
27956         the start of metadata, not from the metadata address in memory.
27957
27958 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
27959
27960         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
27961         AssemblyBuilder objects. Factored out custom attribute creation into
27962         a separate function.
27963         (create_custom_attr): new function to create custom attributes.
27964
27965 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
27966
27967         * Makefile.am: Got tired of typing the full pathname to pedump.
27968         Until there is another option, am installing this.
27969
27970 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
27971
27972         * class.c (class_compute_field_layout): always set field->parent 
27973         (mono_ldtoken): use mono_defaults.fieldhandle_class;
27974
27975 2003-02-11  Dick Porter  <dick@ximian.com>
27976
27977         * threads-types.h:
27978         * monitor.c: Rewrote Monitor, making lock much faster and
27979         Pulse/Wait work as specified.  Also uses much fewer handles, and only
27980         creates them as needed.
27981
27982         * exception.c: Added SynchronizationLockException
27983
27984         * threads.c: Deleted old Monitor implementation.  The new one is
27985         in a new file.
27986
27987 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
27988
27989         * class.c: handled TypedReference type code. Set the correct size for
27990         class data. Setup interface_offsets for interface classes, too.
27991
27992 2003-02-09  Martin Baulig  <martin@ximian.com>
27993
27994         * debug-mono-symfile.h: Reflect latest symbol writer changes.
27995
27996 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
27997
27998         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
27999         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
28000         * object.c: fixed mono_object_get_virtual_method () for interfaces.
28001         * verify.c: check for code that runs after the end of the method.
28002
28003 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
28004
28005         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
28006         "System.Math::Round2".
28007         * sysmath.h: Added Floor, Round and Round2 definitions.
28008         * sysmath.c: Modified certain functions that were not 100% compliant
28009         with MS.NET (math precision) and added the implementation of Floor,
28010         Round and Round2.
28011
28012 2003-02-07  Martin Baulig  <martin@ximian.com>
28013
28014         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
28015
28016 2003-02-07  Martin Baulig  <martin@ximian.com>
28017
28018         * debug-mono-symfile.c: Reflected latest symwriter changes.
28019         (mono_debug_create_mono_symbol_file): Removed.
28020         (mono_debug_open_mono_symbol_file): Take an argument which
28021         specifies whether to create a dynamic symbol file.
28022
28023 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
28024
28025         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
28026
28027 2003-02-05  Martin Baulig  <martin@ximian.com>
28028
28029         * reflection.c (mono_image_build_metadata): Make this public,
28030         protect it against being called multiple times, don't create
28031         resources and don't build the compressed metadata here.
28032         (mono_image_create_pefile): Do this here.
28033
28034         * icall.c
28035         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
28036
28037 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28038
28039         * socket-io.c: fixed bug #36322.
28040
28041 2003-02-06  Piers Haken <piersh@friskit.com>
28042
28043         * appdomain.[ch]:
28044         * class.h:
28045         * debug-mono-symfile.c:
28046         * icall.c:
28047         * loader.c:
28048         * mono-config.c:
28049         * monosn.c:
28050         * reflection.c:
28051         * socket-io.c: warning cleanups
28052
28053 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
28054
28055         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
28056         function. works like remoting invoke, but does a check for the Proxy first.
28057
28058 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
28059
28060         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
28061
28062 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
28063
28064         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
28065         array of pointers.
28066         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
28067         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
28068
28069         * object.c (mono_store_remote_field_new): used by the new jit
28070         instead of mono_store_remote_field
28071         (mono_load_remote_field_new): used by the new jit
28072         instead of mono_load_remote_field
28073
28074 2003-02-05  Patrik Torstensson
28075
28076         * appdomain.c: changed unload to take the domain id instead
28077         of domain
28078         
28079         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
28080
28081
28082 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28083
28084         * appdomain.c: don't look for assemblies in ApplicationBase if
28085         PrivateBinPathProbe is set.
28086
28087 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28088
28089         * object.c: make the first argument in main_args contain the absolute
28090         path to the assembly. Fixes bug #37511.
28091
28092 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28093
28094         * icall.c: get correct UTC offset for countries not using daylight
28095         time saving. Fixes bug #30030.
28096
28097 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28098
28099         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
28100         and 1 are the family).
28101
28102 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
28103
28104         * icall.c (ves_icall_InternalExecute): removed wrong assertion
28105
28106         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
28107
28108 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
28109
28110         * reflection.c: added support for SignatureHelper tokens, which is
28111         needed by the Calli opcode.
28112
28113         * reflection.h: track changes to SignatureHelper class.
28114
28115         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
28116
28117 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28118
28119         * appdomain.c: fixed loading assemblies from PrivateBinPath.
28120
28121 2003-02-03  Patrik Torstensson
28122         * appdomain.[c|h], domain.c : 
28123          - Added support for getting a domain via domain id
28124          - Support for setting and getting domain from System.AppDomain 
28125            (used in cross appdomain channel)
28126          - Added support for get/set for a MonoAppContext on a thread 
28127            (Context class in System.Runtime.Remoting.Contexts),
28128          - Removed hack in Get/SetData and ExecuteAssembly.
28129         
28130         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
28131         the managed world to get control when a proxy is created.
28132
28133         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
28134         
28135 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
28136
28137         * icall.c
28138         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
28139         Populate the codebase field as well.
28140
28141 2003-02-02  Martin Baulig  <martin@ximian.com>
28142
28143         * debug-mono-symfile.c
28144         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
28145         (mono_debug_symfile_add_method): Allow interncalls.
28146
28147 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28148
28149         * icall.c: throw parse exception if strtod fails or the string is empty.
28150
28151 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
28152
28153         * marshal.c: handle object type separately from defined
28154         class types.
28155
28156 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
28157
28158         * marshal.c: handle NATIVE_LPSTR for strings when it's
28159         explicitly specified.
28160
28161 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
28162
28163         * reflection.c, reflection.h, icall.c: setup the reflection
28164         handle cache for ModuleBuilders and AssemblyBuilders.
28165
28166 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
28167
28168         * reflection.c (reflection_methodbuilder_to_mono_method): set
28169         pinvoke flag
28170
28171 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28172
28173         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
28174
28175 2003-01-29  Dick Porter  <dick@ximian.com>
28176
28177         * threads.c: No need for the fake_thread kludge now that Thread
28178         doesn't run a class constructor
28179         
28180 2003-01-29  Dick Porter  <dick@ximian.com>
28181
28182         * threads.c: Use g_direct_hash instead of the rather bogus
28183         g_int_hash
28184
28185 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
28186
28187         * marshal.c (mono_marshal_get_native_wrapper): add check for null
28188         (fix pinvoke12.exe)
28189         (mono_marshal_get_struct_to_ptr): generate valid IL code
28190         (mono_marshal_get_ptr_to_struct): generate valid IL code
28191         (*): correctly set sig->pinvoke, we need to memdup the signature
28192         to do that
28193
28194 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
28195
28196         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
28197         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
28198
28199 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
28200
28201         * profiler.c: provide more callers information.
28202
28203 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
28204
28205         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
28206
28207         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
28208
28209         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
28210
28211 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
28212
28213         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
28214         exception instead of going into an infinite loop on dates which it 
28215         can't yet handle.
28216
28217         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
28218         out-of-range exception if needed.
28219
28220         * class.c (mono_class_setup_vtable): allow a virtual method to provide
28221         an implementation for an interface method and to override an inherited
28222         method at the same time. 
28223         Imagine a scenario when a virtual method is used to override a
28224         virtual abstract method in a parent class, and this same method 
28225         provides an implementation for an method inherited from an interface. 
28226         In this case, the interface resolution code will set im->slot, which 
28227         means that the virtual method override pass will skip this method 
28228         which means a pointer to the abstract method inherited from the parent
28229         will remain in the vtable of this non-abstract class.
28230
28231         * class.c: (mono_class_setup_vtable): continue search for a real 
28232         method if only an abstract method is found.     
28233
28234 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
28235
28236         * reflection.c: add size to encoding for ByValStr and ByValArray
28237         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
28238
28239 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
28240
28241         * class.c (mono_class_setup_vtable): pass the override info as an
28242         argument.
28243
28244         * class.c (mono_class_setup_vtable): set the slot of overriding methods
28245         correctly.
28246         
28247         * reflection.c (ensure_runtime_vtable); add support for method 
28248         overrides.
28249         
28250 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
28251
28252         * reflection.c (resolution_scope_from_image): Hack to work to work with
28253         dynamic assemblies.
28254
28255         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
28256         added a 'force_ref' argument to force this function to allways return 
28257         a TypeRef. This is needed by mono_image_get_memberref_token ().
28258         
28259 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
28260
28261         * reflection.c (mono_image_get_type_info): interfaces really don't have
28262         a parent.
28263
28264         * reflection.c (mono_image_basic_init): fill out missing fields of
28265         image structure.
28266
28267         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
28268         dynamic assemblies. This is required so dynamic assemblies show up in
28269         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
28270         Type::GetType() etc. This is consistent with MS behaviour.
28271
28272         * image.c image.h reflection.c: add newly created classes to the name 
28273         cache so mono_class_get () will find them.      
28274
28275 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
28276
28277         First part of changes to get IKVM.NET running under mono.
28278         
28279         * appdomain.h, appdomain.c: added new function 
28280         mono_domain_try_type_resolve() which will emit TypeResolve events. 
28281         This function will call AppDomain::DoTypeResolve to do the actual work.
28282
28283         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
28284         moved existing code dealing with dynamic tokens to a new function 
28285         called mono_reflection_lookup_dynamic_token (). This function will 
28286         raise TypeResolve events when appropriate. Since reflection.c is not 
28287         part of libmetadata, a new hook function called 
28288         mono_lookup_dynamic_token() is added to class.c which will call this.
28289
28290         * assembly.h assembly.c: make the invoke_load_hook function public,
28291         so it can be called for dynamic assemblies.
28292
28293         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
28294
28295         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
28296         type isn't found.
28297
28298         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
28299         MonoGHashTable, since it contains pointers to objects which the GC 
28300         needs to track.
28301
28302         * assembly.c (search_loaded): remove unused variable.
28303         
28304 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
28305
28306         * object.c: fixed issue exposed by gcc-generated IL programs
28307         that use RVA data for pointers.
28308
28309 2003-01-25  Martin Baulig  <martin@ximian.com>
28310
28311         * threads.c (start_wrapper): Moved the initialization of
28312         `start_func' above the mono_new_thread_init() call to which we
28313         pass it as argument.
28314
28315 2003-01-24  Martin Baulig  <martin@ximian.com>
28316
28317         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
28318         the MonoThread pointer.
28319
28320 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
28321
28322         * icall.c: Rename `PowImpl' to Pow.
28323
28324 2003-01-23  Dick Porter  <dick@ximian.com>
28325
28326         * threads.c (start_wrapper): Create a Thread object if needed, so
28327         the Main() thread can do the class initialisation in a subthread
28328         that has been set up to allow managed code execution.
28329
28330         Pass the thread ID instead of the MonoThread pointer to the thread
28331         start and attach callbacks.  This change is required, because the
28332         jit thread start callback must be called _before_ the Thread
28333         object can be created.
28334         
28335         (mono_thread_init): Removed much object creation code that is no
28336         longer needed.  No managed code is called from here now.
28337
28338         * object.c (mono_runtime_exec_managed_code): Create a subthread
28339         for Main, and call back to the runtime to use it.
28340         Set the exit code when Main exits.
28341
28342         * gc.c: Make sure domain finalisation happens in a subthread.
28343         Re-enable threaded GC, fixing bug 31333 (again).
28344
28345         * environment.c: System.Environment internall calls (so far just
28346         ExitCode is here, the others are still in icall.c)
28347
28348         * appdomain.c (mono_runtime_cleanup): All threads running managed
28349         code should have finished before mono_runtime_cleanup() is
28350         reached, so no need to clean up threads.
28351
28352 2003-01-22  Martin Baulig  <martin@ximian.com>
28353
28354         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
28355         `gpointer func' arguments.      
28356         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
28357         but added `MonoThread *thread' argument.
28358         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
28359
28360         * threads.c (mono_new_thread_init): Added `gpointer func' argument
28361         and pass it to the mono_thread_start_cb callback.
28362         (mono_install_thread_callbacks): New public function to install a
28363         set of callbacks which are set by the debugger.
28364         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
28365
28366 2003-01-22  Martin Baulig  <martin@ximian.com>
28367
28368         * Makefile.am: Install debug-mono-symfile.h.
28369
28370 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
28371
28372         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
28373
28374 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
28375
28376         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
28377         * class.c (mono_ptr_class_get): correctly set access levels of pointers
28378         (mono_array_class_get): correctly set access levels of arrays
28379
28380 2003-01-20      Patrik Torstensson
28381         * image.h (MonoAssemblyName): changed major, minor, build, revision
28382         from signed to unsigned.
28383
28384 2003-01-20  sean kasun <skasun@azstarnet.com>
28385
28386         * reflection.c (load_cattr_value): Now this handles
28387         MONO_TYPE_SZARRAY.  Fixes bug #35629
28388
28389 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
28390
28391         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
28392         integer value
28393
28394 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28395
28396         * decimal.c: fixed bug #26056.
28397
28398 2003-01-17  Martin Baulig  <martin@ximian.com>
28399
28400         * gc.c: Raise an ExecutionEngineException instead of using g_error().
28401
28402 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28403
28404         * exception.[ch]:
28405         (mono_get_exception_type_initialization): new function.
28406
28407         * object.c: throw a TypeInitializationException when an exception is
28408         thrown invoking the class constructor.
28409
28410 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28411
28412         * reflection.c: fixed attribute reading.
28413
28414 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28415
28416         * icall.c:
28417         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
28418         provided, look for the type in the calling assembly and then in
28419         mscorlib; if the assembly name is provided, only try that one.
28420
28421 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
28422
28423         * object.c: register the vtable before there is a chance it's
28424         queried again recursively.
28425
28426 2003-01-13  Duncan Mak  <duncan@ximian.com>
28427
28428         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
28429         gc-internal.h. 
28430         
28431 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
28432
28433         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
28434
28435 2003-01-11  Martin Baulig  <martin@ximian.com>
28436
28437         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
28438         this to 20 for the release.
28439
28440 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
28441
28442         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
28443
28444         * loader.c (mono_method_get_marshal_info): bug fix
28445
28446         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
28447         structures with explicit layout
28448
28449 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
28450
28451         * profiler.c: made the output more readable (and sorted). 
28452         Added caller information for the allocation profiler.
28453
28454 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
28455
28456         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
28457
28458 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28459
28460         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
28461         to get value types.
28462         
28463 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
28464
28465         * object.c, profiler.h, profiler.c, profiler-private.h:
28466         Added object allocation profiler.
28467
28468 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
28469
28470         * reflection.h, reflection.c: handle global methods.
28471         Compress blob entries.
28472
28473 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
28474
28475         * marshal.c: fix compilation.
28476
28477 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
28478
28479         * loader.c (mono_method_get_marshal_info): impl.
28480
28481         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
28482
28483 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28484
28485         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
28486         for reference types.
28487
28488 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
28489
28490         * loader.c: fixed off by one error in loaded parameter names.
28491
28492 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
28493
28494         * marshal.c (mono_marshal_get_icall_wrapper): like
28495         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
28496         instead of a MonoMethod.
28497
28498 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28499
28500         * decimal.c: fixed bug #36537.
28501
28502 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
28503
28504         * marshal.c: throw a missing method exception if a
28505         P/Invoke method is not found.
28506
28507 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
28508
28509         * icall.c: allow a null this for constructors.
28510
28511 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
28512
28513         * icall.c: raise the proper exceptions if the arguments to the
28514         internal Invoke are incorrect.
28515
28516 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
28517
28518         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
28519
28520 2003-01-03  Martin Baulig  <martin@ximian.com>
28521
28522         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
28523
28524 2002-12-31  Martin Baulig  <martin@ximian.com>
28525
28526         * debug-mono-symfile.c: Completely rewrote the type section.
28527         Instead of using individual malloc()ed fields, we use one big
28528         continuous memory area and offsets into this area.
28529         See the comments in the source code for details.
28530
28531 2002-12-30  Martin Baulig  <martin@ximian.com>
28532
28533         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
28534
28535 2002-12-30  Martin Baulig  <martin@ximian.com>
28536
28537         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
28538         line number table in this data blob instead of using an external
28539         pointer.
28540
28541 2002-12-28  Martin Baulig  <martin@ximian.com>
28542
28543         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
28544
28545 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
28546
28547         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
28548         as a boxed return type.
28549
28550 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
28551
28552         * appdomain.c
28553         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
28554         g_build_filename to properly get separators on the filename created.
28555
28556         * object.h: Small change, introduce MonoMarshalByRefObject to
28557         track the layout of that structure in the C# universe as we make
28558         changes there.
28559
28560 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
28561
28562         * object.c: removed assert to allow static fields on interfaces.
28563         * loader.c: a TypeSpec may be used for any type, not just arrays.
28564
28565 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
28566
28567         * class.c, class.h: added mono_class_array_element_size ().
28568         Ignore static methods in interfaces.
28569
28570 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28571
28572         * threads.c: fixed the build under cygwin.
28573
28574 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
28575
28576         * reflection.c: handle nullref constants. Allocate keys for
28577         reflection handles with the GC.
28578
28579 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
28580
28581         * threads.c, threads.h: added mono_thread_get_abort_signal()
28582         to get a suitable signal for thread abort.
28583
28584 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
28585
28586         * metadata.c: fix handling of ExportedType table.
28587
28588 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28589
28590         * icall.c: added WriteWindowsDebugString internal call.
28591
28592 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28593
28594         * reflection.h: added fields to match C# implementation.
28595
28596 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28597
28598         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
28599
28600 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
28601
28602         * gc.h, gc-internal.h: Rename header for GC internal calls to
28603         gc-internal.h from gc.h as to not clash with Boehm GC having its
28604         header installed as <gc.h> in outside include paths.
28605         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
28606         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
28607
28608 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28609
28610         * icall.c: assign minor, build and revision in FillName.
28611
28612 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
28613
28614         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
28615         Added support for running code generated by Reflection.Emit.
28616
28617 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28618
28619         * appdomain.c: check for NULL argument in LoadFrom.
28620
28621 2002-12-10  Dick Porter  <dick@ximian.com>
28622
28623         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
28624
28625 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28626
28627         * appdomain.c: fix buglet when building exe file name.  Handle full
28628         assembly name (needed after latest changes to AssemblyName).
28629         * image.c:
28630         (mono_image_close): free some hashtables.
28631
28632 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
28633
28634         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
28635         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
28636         on some systems (redhat 7.3) 
28637
28638 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
28639
28640         * threads.c: delete the critical section of a sync block,
28641         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
28642
28643 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
28644
28645         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
28646
28647 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28648
28649         * appdomain.[ch]: handle the assembly preload event to try loading the
28650         assemblies using the paths we have in the current domain.
28651
28652         * assembly.[ch]: created an assembly preload hook that is called to try
28653         loading the assembly by other means that the ones provided here.
28654
28655         * domain.c: initialize the domain search path.
28656
28657         From now on, assemblies (TODO: except corlib and System) are loaded
28658         according to these rules when using mono_assembly_load ():
28659
28660                 1. It tries to load the assembly from the ApplicationBase
28661                 of the current domain appending .dll and .exe (TODO: have to
28662                 try loading from name/name.dll and name/name.exe).
28663
28664                 2. It tries the search path specified in PrivateBinPath for the
28665                 current domain (if any).
28666
28667                 3. Previous behavior.
28668
28669 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
28670
28671         * icall.c: implemented GetInterfaceMap() related icall.
28672         * domain.c, loader.h: load MethodInfo in mono_defaults.
28673
28674 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
28675
28676         * gc.c: disable the finalizer thread for now, untill all the issues
28677         with it are resolved.
28678
28679 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
28680
28681         * string-icalls.c: handle embedded nulls in string ctor when the
28682         length is specified.
28683
28684 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
28685
28686         * class.c: look for explicit interface implementation in parent
28687         classes, too.
28688
28689 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
28690
28691         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
28692
28693 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
28694
28695         * gc.c: protect handles with a critical section.
28696
28697 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28698
28699         * icall.c:
28700         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
28701         parameters. If no assembly specified, try getting the type from all
28702         the assemblies in the current domain, else, load the assembly and get
28703         the type from it.
28704
28705 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28706
28707         * marshal.c: applied patch from Aleksey Demakov that fixes
28708         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
28709
28710 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28711
28712         * icall.c: fixed get_location.
28713
28714 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
28715
28716         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
28717         declarations to make it work with older gcc. 
28718
28719         * loader.c (mono_get_method): set signature->pinvoke for native calls
28720
28721 2002-11-20  Dick Porter  <dick@ximian.com>
28722
28723         * threads.c (mono_thread_init): Set the main thread's handle
28724
28725 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
28726
28727         * gc.c: allow compilation without GC support. Changed to match the
28728         mono coding style.
28729
28730 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
28731
28732         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
28733
28734 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
28735
28736         * reflection.c: set a public key token on the core assemblies.
28737
28738 2002-11-18  Dick Porter  <dick@ximian.com>
28739
28740         * threads.c: Split out some thread initialisation so that other
28741         files can set the start callback function.
28742
28743         * gc.c: Run finalisers in a separate thread, to avoid stack
28744         overflow.  Fixes bug 31333.
28745
28746         * appdomain.c: Set up GC finalisation thread.
28747
28748         * reflection.c: 
28749         * object.c: 
28750         * domain.c: Use gc.h macros for GC_malloc
28751         
28752 2002-11-15  Dick Porter  <dick@ximian.com>
28753
28754         * threadpool.c: 
28755         * threads.c:
28756         * appdomain.c: Removed mono_runtime_init_with_attach(),
28757         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
28758         merging the extra parameter with the existing function.  Removed
28759         unneeded code in mono_thread_attach().
28760
28761 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
28762
28763         * image.c (mono_image_loaded_by_guid): a method to get loaded
28764         images by guid. 
28765         (load_metadata_ptrs): we store the guid as string.
28766
28767 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
28768
28769         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
28770
28771         * metadata.c (mono_guid_to_string): imported method form Zoltan
28772         Varga (slightly modified)
28773
28774         * assembly.c (mono_assembly_open): load precompiled code
28775
28776         * loader.h (MonoMethod): we store the method token for use in the
28777         aot compiler. 
28778
28779 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28780
28781         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
28782         the hook function called when an assembly is loaded.
28783         
28784         * domain.c: Modified file.
28785         (mono_domain_assembly_load): removed hash table insertion of assemblies.
28786
28787         Fixes bug #33196.
28788
28789 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
28790
28791         * reflection.c: Map PEFileKind to the value expected by the WinNT
28792         image loader. 
28793
28794 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28795
28796         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
28797         Read until the buffer is filled completely.
28798
28799 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28800
28801         * icall.c: implemented MonoType.InternalGetEvent ().
28802
28803 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28804
28805         * appdomain.c: implemented InitAppDomainSetup. Delayed
28806         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
28807         the entry_assembly.
28808
28809         * assembly.c: base_dir is now an absolute path ending with
28810         G_DIR_SEPARATOR.
28811
28812         * icall.c: modified get_location according to the above changes.
28813
28814         * object.c: init AppDomain.SetupInformation for the default domain after
28815         we have the entry assembly.
28816
28817         * domain.c: when unloading a domain, setup = NULL.
28818
28819 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
28820
28821         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
28822
28823 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
28824
28825         * object.h, object.c: introduced mono_object_get_virtual_method ()
28826         to lookup the method invoked on an object when a callvirt is done on
28827         a method.
28828         * icall.c: make MethodInfo::Invoke() always do a virtual call.
28829
28830 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28831
28832         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
28833         current domain when loaded an assembly and failed to load it.
28834
28835         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
28836
28837 2002-10-31  Dick Porter  <dick@ximian.com>
28838
28839         * icall.c: 
28840         * file-io.h: 
28841         * file-io.c: Return the error status in a parameter, as the
28842         GetLastError() value has long since been blown away if we try and
28843         look it up in a subsequent internal call invocation.  Delete the
28844         GetLastError() internal call, because it's useless.
28845
28846 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
28847
28848         * class.[ch]: added cast_class to fix bug 29517
28849
28850 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
28851
28852         * marshal.c: create valid IL code in the filter clause:
28853         the new JIT is less forgiving:-)
28854
28855 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28856
28857         * icall.c: removed get_property internal call.
28858
28859 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
28860
28861         * appdomain.h domain.c: Added an ID to appdomains.
28862         
28863         * threads.c threads.h icall.c: Implement icall
28864         Thread:GetDomainID(), and remove unused icall 
28865         CurrentThreadDomain_internal.
28866
28867 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28868
28869         * icall.c: Don't recurse through the base types in GetConstructor.
28870         Fixes bug #32063. 
28871
28872 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
28873
28874         * mempool.h, mempool.c: added mono_mempool_empty() and
28875         mono_mempool_stats().
28876
28877 2002-10-23  Dick Porter  <dick@ximian.com>
28878
28879         * file-io.c: 
28880         * file-io.h: 
28881         * icall.c: Added MonoIO.GetFileType internal call
28882
28883 2002-10-17  Dick Porter  <dick@ximian.com>
28884
28885         * appdomain.c (mono_runtime_cleanup): Don't signal the async
28886         delegate semaphore before waiting for all threads to finish,
28887         because new threads can also call async delegates.  Fixes bug
28888         32004.
28889
28890         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
28891         of 3 seconds, in case another async job is queued.  (This part is
28892         needed because the bug fix reintroduced the 3s exit lag.)  This
28893         makes the mono_runtime_shutdown flag superfluous.
28894
28895 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
28896
28897         * reflection.c: include ehader size in method section headers.
28898         Really check for suplicated modules entries.
28899
28900 2002-10-17  Martin Baulig  <martin@gnome.org>
28901
28902         * debug-mono-symfile.c: Added back support for locals.
28903
28904 2002-10-14  Martin Baulig  <martin@gnome.org>
28905
28906         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
28907         MONO_TYPE_VOID.
28908
28909 2002-10-14  Martin Baulig  <martin@gnome.org>
28910
28911         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
28912         mono_class_get() instead of looking in the class cache. 
28913
28914 2002-10-13  Martin Baulig  <martin@gnome.org>
28915
28916         * debug-mono-symfile.c: Set version number to 28, include the
28917         signature in method names.
28918
28919 2002-10-13  Martin Baulig  <martin@gnome.org>
28920
28921         * debug-mono-symfile.h: Set version number to 27.
28922
28923 2002-10-11  Martin Baulig  <martin@gnome.org>
28924
28925         * gc.c: Don't register/unregister NULL pointers as disappearing links.
28926
28927 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
28928
28929         * metadata.c, metadata.h: added helper function to allocate signatures.
28930
28931 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28932
28933         * icall.c: added internal call to get the location of machine.config.
28934
28935 2002-10-08  Martin Baulig  <martin@gnome.org>
28936
28937         * debug-mono-symfile.c: Ignore classes with a pending init for the
28938         moment.
28939
28940 2002-10-03  Dick Porter  <dick@ximian.com>
28941
28942         * threads.c: Freebsd pthread_t is a pointer
28943
28944 2002-10-03  Dick Porter  <dick@ximian.com>
28945
28946         * socket-io.c: Implemented GetHostName_internal
28947
28948 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28949
28950         * mono-config.c:
28951         (mono_config_parse_file): don't leak the text.
28952
28953 2002-10-02  Martin Baulig  <martin@gnome.org>
28954
28955         * debug-mono-symfile.c: Added support for methods.
28956
28957 2002-10-01  Martin Baulig  <martin@gnome.org>
28958
28959         * debug-mono-symfile.c: Don't emit methods and line numbers for
28960         the dynamic symbol file, just write the type table.  We can easily
28961         have an external helper program which creates a symbol file for an
28962         IL file.        
28963
28964 2002-10-01  Dick Porter  <dick@ximian.com>
28965
28966         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
28967         Only add the handle to the cleanup array when we're about to
28968         launch the thread.  Bug 31425 deadlocked when the test was run on
28969         mono under w32.
28970
28971 2002-10-01  Martin Baulig  <martin@gnome.org>
28972
28973         * debug-mono-symfile.c: Added support for properties.
28974
28975 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
28976
28977         * reflection.c: unaligned store fix from Mark Crichton
28978         <crichton@gimp.org>.
28979
28980 2002-09-27  Martin Baulig  <martin@gnome.org>
28981
28982         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
28983         New interncall.
28984
28985 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
28986
28987         * assembly.h, assembly.c: use a sane API to hook into the assembly
28988         loading process instead of a useless special-purpouse hack
28989         (ngen needs a hook, too, for example).
28990
28991 2002-09-27  Dick Porter  <dick@ximian.com>
28992
28993         * threads.c (mono_thread_init): Call GetCurrentProcess() so
28994         io-layer can set up some process handle info.  Not needed on w32,
28995         but doesn't hurt either.
28996
28997         * process.c: Pass the program name in the second parameter to
28998         CreateProcess, so the path is searched.  Include the working
28999         directory. Implemented process name, process enumeration, and some
29000         process detail internal calls.
29001         
29002         * icall.c: Added internal calls for process lookup, and some
29003         process details
29004
29005 2002-09-26  Martin Baulig  <martin@gnome.org>
29006
29007         * assembly.c (mono_install_open_assembly_hook): New global
29008         function to install a function to be invoked each time a new
29009         assembly is loaded.
29010         (mono_assembly_open): Run this callback function if set.
29011
29012         * debug-mono-symfile.c: Put back line numbers for the dynamic
29013         symbol file and also record the .il file as source file.  This
29014         allows us to install the temporary symbol file as `file.dbg' just
29015         like a compiler-generated one.
29016
29017 2002-09-26  Nick Zigarovich <nick@chemlab.org>
29018
29019         * Corrected typo in gc.c (BOHEM vs BOEHM).
29020
29021 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29022
29023         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
29024         GetProperties. Also avoid calling g_slist_length in GetProperties and
29025         GetMethods.
29026
29027 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
29028
29029         * reflection.c: avoid unaligned stores (bug spotted by
29030         Mark Crichton  <crichton@gimp.org>).
29031
29032 2002-09-25  Martin Baulig  <martin@gnome.org>
29033
29034         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
29035         instead of guint64 for addresses and added prologue/epilogue info.
29036
29037 2002-09-25  Martin Baulig  <martin@gnome.org>
29038
29039         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
29040         store line number info.  For the dynamic symbol file, we only need
29041         to provide the JIT generated dynamic line number info for the dynamic
29042         symbol file.
29043
29044 2002-09-25  Martin Baulig  <martin@gnome.org>
29045
29046         * debug-mono-symfile.h: Incremented version number.
29047
29048 2002-09-24  Martin Baulig  <martin@gnome.org>
29049
29050         * class.c (mono_debugger_class_init_func): New global function
29051         pointer variable.
29052         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
29053         call it.
29054
29055         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
29056         function.  This is called via the mono_debugger_class_init_func
29057         hook to add all types to the dynamic type table.
29058         (ves_icall_MonoDebugger_GetType): New interncall to get a class
29059         from its metadata token.
29060
29061         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
29062         New interncall for the debugger.
29063
29064 2002-09-24  Nick Drochak <ndrochak@gol.com>
29065
29066         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
29067         before using it in case it is null.
29068         
29069 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
29070
29071         * metadata.c: allow custom modifiers in local var signatures
29072         (bug spotted by Zoltan Varga).
29073
29074 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
29075
29076         * class.c: deal with the <Module> class that may have a NULL vtable.
29077         Eliminate warnings.
29078
29079 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
29080
29081         * image.c, image.h: more strong name helpers.
29082         * monosn.c: more work: convert pem keys to cryptoapi format.
29083
29084 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
29085
29086         * string-icalls.c: speedup IndexOf.
29087
29088 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
29089
29090         * icall.c: updates from Zoltan.2.Varga@nokia.com.
29091
29092 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
29093
29094         * icall.c: cleanup: use mono_object_domain ().
29095
29096 2002-09-23  Martin Baulig  <martin@gnome.org>
29097
29098         * debug-mono-symfile.c: Improved type support.
29099
29100 2002-09-22  Martin Baulig  <martin@gnome.org>
29101
29102         * debug-mono-symfile.c: Added support for reference types and strings.
29103
29104 2002-09-22  Martin Baulig  <martin@gnome.org>
29105
29106         * debug-mono-symfile.c: Started to work on the type table.
29107
29108 2002-09-21  Martin Baulig  <martin@gnome.org>
29109
29110         * debug-mono-symfile.c: Largely reworked the symbol table format.
29111         The symbol table is now incrementally updated each time a new
29112         method is added.  We're now also using our own magic and version
29113         so that you don't need to recompile all your classes if the
29114         dynamic table changes.
29115         (mono_debug_update_mono_symbol_file): Removed.
29116         (mono_debug_symfile_add_method): New function to add a method.
29117
29118 2002-09-21  Martin Baulig  <martin@gnome.org>
29119
29120         * icall.c
29121         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
29122         New interncall.
29123
29124         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
29125         New interncall to get a method from its metadata token.
29126
29127 2002-09-21  Martin Baulig  <martin@gnome.org>
29128
29129         * debug-mono-symfile.c: Create type table.
29130
29131 2002-09-20  Martin Baulig  <martin@gnome.org>
29132
29133         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
29134
29135 2002-09-20  Martin Baulig  <martin@gnome.org>
29136
29137         * debug-mono-symfile.c: Provide information about params and locals.
29138
29139 2002-09-20  Martin Baulig  <martin@gnome.org>
29140
29141         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
29142         New interncall.
29143
29144         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
29145         interncall to get a method from its metadata token.
29146
29147 2002-09-20  Martin Baulig  <martin@gnome.org>
29148
29149         * debug-mono-symfile.c: Added a few checks for method->header
29150         being non-NULL.  This should never happen, but for the moment
29151         let's use a g_warning() rather than a g_assert().
29152
29153 2002-09-19  Mark Crichton  <crichton@gimp.org>
29154
29155         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
29156         even if support for it isn't present.  Added an #ifdef to fix this.
29157
29158         * socket-io.c: Added checks back for Solaris support.
29159
29160 2002-09-19  Martin Baulig  <martin@gnome.org>
29161
29162         * debug-mono-symfile.c (read_string, write_string): Reflect latest
29163         changes in the symbol file format.
29164
29165 2002-09-18  Martin Baulig  <martin@gnome.org>
29166
29167         * debug-mono-symfile.c: Set version number to 21.
29168
29169 2002-09-18  Dick Porter  <dick@ximian.com>
29170
29171         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
29172         on netbsd.  Fixes bug 30051.
29173
29174 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29175
29176         * reflection.c:
29177         (set_version_from_string): little fix.
29178
29179 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
29180
29181         * monosn.c, Makefile.am: added strong name utility.
29182         * reflection.h, reflection.c: implemented delayed signing,
29183         locale, version and hash id assembly attributes.
29184
29185 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
29186
29187         * loader.c, metadata.c: load param attributes in signatures.
29188
29189 2002-09-16  Martin Baulig  <martin@gnome.org>
29190
29191         * debug-mono-symfile.c: Added string table with all method names.
29192
29193 2002-09-14  Martin Baulig  <martin@gnome.org>
29194
29195         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
29196         fast method lookup.
29197
29198 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
29199
29200         * reflection.c: record the public key token of referenced assemblies.
29201
29202 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
29203
29204         * image.c, image.h: added functions to get the strong name and the
29205         public key of an assembly.
29206         * pedump.c: use them.
29207
29208 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
29209
29210         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
29211
29212 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
29213
29214         * marshal.c (mono_marshal_get_managed_wrapper): Added
29215         MONO_TYPE_BOOLEAN 
29216
29217 2002-09-11  Martin Baulig  <martin@gnome.org>
29218
29219         * gc.c: Call GC_unregister_disappearing_link() on all links when
29220         finalizing them, this is necessary to aviod a crash in boehm's
29221         finalize handler.
29222
29223 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
29224
29225         * gc.c: handle GetTarget for finalized objects spotted and fixed by
29226         nick@chemlab.org.
29227
29228 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
29229
29230         * icall.c: implemented MonoType::Module.
29231         * reflection.c, reflection.h: mono_module_get_object () from
29232         Tomi Pakarinen <tomi.pakarinen@welho.com>.
29233
29234 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
29235
29236         * icall.c: ignore overridden methods in GetMethods ().
29237         Fix for FieldInfo::SetValue().
29238         * object.c: handle float/double in runtime invoke.
29239
29240 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
29241
29242         * object.c: allow a constructor to be called again on an object.
29243
29244 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
29245
29246         * class.h, class.c: move field layout code to it's own function and
29247         export it. Get an interface id earlier. Move fields in MonoClass
29248         so they are more cache friendly and align the bitfields.
29249         * loader.c: temporary handle get_param_names() for a runtime method.
29250         * reflection.c, reflection.h: more code to handle runtime creation of
29251         types.
29252
29253 2002-09-09  Martin Baulig  <martin@gnome.org>
29254
29255         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
29256         signature with the pinvoke field being set for the actual call.
29257
29258 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
29259
29260         * icall.c: removed some unused icalls. Start of map of glib charsets
29261         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
29262
29263 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
29264
29265         * debug-helpers.c: break infinite loop (found and fixed by
29266         Holger Arnold <harnold@gmx.de>).
29267
29268 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
29269
29270         * icall.c: target may be null in create_delegate.
29271
29272 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
29273
29274         * marshal.c: handle a boolean return type.
29275
29276 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
29277
29278         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
29279
29280 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
29281
29282         * gc.c: fix weakreferences.
29283
29284 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
29285
29286         * icall.c: added icall to get default codepage.
29287
29288 2002-09-03  Dick Porter  <dick@ximian.com>
29289
29290         * threads.h: 
29291         * threads.c: Use MonoThread instead of MonoObject where
29292         apropriate.
29293
29294         Store running thread objects in a hash table, so that we have all
29295         the info to hand when waiting for them to finish
29296         (means we don't need OpenThread() any more, so mingw builds should
29297         be fully functional again.)
29298
29299         * verify.c:
29300         * object.h: Added thread ID to MonoThread
29301
29302 2002-09-03  Martin Baulig  <martin@gnome.org>
29303
29304         * icall.c (System.Reflection.Assembly::get_location): New interncall.
29305
29306 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29307
29308         * icall.c: fixed leak in get_temp_path. Thanks lupus.
29309
29310 2002-09-03  Martin Baulig  <martin@gnome.org>
29311
29312         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
29313         argument to store the end address of the disassembled instruction.
29314
29315         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
29316         here from debug-symfile.h.
29317         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
29318         JIT into this struct.
29319         (MonoSymbolFile): Added `char *image_file' field.
29320         (MonoDebugGetMethodFunc): Removed.
29321         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
29322         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
29323         (mono_debug_find_method): New method.
29324
29325         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
29326         create a full symbol file.
29327         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
29328         and static symbol files.
29329         (mono_debug_find_method): The symbol file keeps an internal method hash,
29330         call this to get a MonoDebugMethodInfo from a MonoMethod.
29331
29332         * debug-symfile.[ch]: Removed.
29333
29334 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
29335
29336         * image.c (do_mono_image_open): Remove linker version check.
29337
29338 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
29339
29340         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
29341         wrappers for instance methods.
29342         
29343 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29344
29345         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
29346
29347 2002-08-28  Dick Porter  <dick@ximian.com>
29348
29349         * Makefile.am: Export HOST_CC for w32 builds
29350
29351 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
29352
29353         * file-io.c process.c: MonoString are null terminated, no
29354         need for mono_string_to_utf16() anymore.
29355
29356 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
29357
29358         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
29359
29360 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
29361
29362         * icall.c, reflection.h: speedup System.MonoType.
29363
29364 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
29365
29366         * reflection.c: allow null as the value of a string argument in
29367         custom attributes constructors.
29368
29369 2002-08-27  Martin Baulig  <martin@gnome.org>
29370
29371         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
29372         `trampoline_address' field.
29373
29374 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
29375
29376         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
29377         check (fixes bug #29486) 
29378
29379 2002-08-27  Martin Baulig  <martin@gnome.org>
29380
29381         * debug-mono-symfile.c: Changed the file format in a way that allows us
29382         open it read-only and to use a specially malloced area for all the
29383         dynamic data.  We can now also generate a symbol file on-the-fly if we're
29384         debugging IL code and there is no MCS generated symbol file for it.
29385
29386 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
29387
29388         * object.c: added a define for a good string and array
29389         creation speedup (not enabled by default because we need to deal with
29390         the synch stuff).
29391
29392 2002-08-26  Martin Baulig  <martin@gnome.org>
29393
29394         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
29395         function to create a dynamic symbol file.  This is used by the
29396         debugger to create a symbol file for IL code on-the-fly.
29397
29398 2002-08-26  Martin Baulig  <martin@gnome.org>
29399
29400         * loader.c (mono_lookup_pinvoke_call): Include the error message
29401         from g_module_error() in the error message.
29402
29403 2002-08-24  Martin Baulig  <martin@gnome.org>
29404
29405         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
29406         function to update the symbol file.  The symbol file is mmap()ed
29407         writable, but private.  This allows us to install the symbol file
29408         together with the assembly.
29409
29410 2002-08-24  Martin Baulig  <martin@gnome.org>
29411
29412         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
29413         but they can read the new symbol file format which mcs is now creating.
29414
29415         * debug-symfile.c (mono_debug_find_source_location): Moved to
29416         debug-mono-symfile.c; this is now operating on the new symbol file.
29417
29418 2002-08-23  Martin Baulig  <martin@gnome.org>
29419
29420         * debug-helpers.c (mono_method_desc_from_method): New function to get
29421         a MonoMethodDesc from a MonoMethod.
29422
29423 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
29424
29425         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
29426         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
29427
29428 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
29429
29430         * string-icalls.[ch]: make helper methods static.
29431
29432 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29433
29434         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
29435         types to it and to SetValueInternal.
29436
29437         * object.c: Moved handle_enum label to its proper place. This was the
29438         f... bug! ;-)
29439
29440         This time i compiled mcs and gtk-sharp and they both work.
29441
29442 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29443
29444         * icall.c: reverted partially my previous patch until 
29445         object.c:set_value handles enums correcly.
29446
29447 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29448
29449         * icall.c:
29450         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
29451         (ves_icall_System_Environment_get_MachineName): removed warning when
29452         compiling under cygwin.
29453
29454 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
29455
29456         * object.c: fixed field_get_value() for reference types.
29457
29458 2002-08-22  Dick Porter  <dick@ximian.com>
29459
29460         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
29461         Don't free a buffer while it's still needed.  Patch from Jonathan
29462         Liger <Jonathan.liger@wanadoo.fr>
29463
29464 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
29465
29466         * icall.c (ves_icall_System_Environment_get_Platform): Add new
29467         internal call.
29468
29469 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
29470
29471         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
29472         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
29473
29474         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
29475         we call unmanaged code which throws exceptions.
29476
29477 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
29478
29479         * appdomain.h: added per-domain entry_assembly.
29480         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
29481         arguments.
29482         * icall.c: Assembly::GetEntryAssembly icall.
29483         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
29484         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
29485
29486 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
29487
29488         * appdomain.h, gc.c: added mono_domain_finalize ().
29489
29490 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29491
29492         * object.c:
29493         (mono_print_unhandled_exception): changed g_warning by g_printerr
29494         because g_log has a 1024 characters limit (yeah, i got a big stack
29495         trace). Don't print exception name, that should be in ToString 
29496         returned string.
29497
29498 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29499
29500         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
29501         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
29502
29503 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29504
29505         * object.c:
29506         (mono_print_unhandled_exception): after previous commit, i realized
29507         that MS calls ToString on the exception. I changed this function to
29508         do that. This way we get stack_trace for free.
29509
29510 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29511
29512         * object.c:
29513         (mono_print_unhandled_exception): invoke Message property instead of
29514         getting 'message' field from Exception. Don't allocate memory for
29515         'trace' and 'message' if not needed.
29516
29517 2002-08-18  Dick Porter  <dick@ximian.com>
29518
29519         * unicode.c: Fix asserts to match Encoder.cs checks
29520
29521 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
29522
29523         * marshal.c: fix unaligned store issue and a few wrong
29524         opcode argument types.
29525
29526 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29527
29528         * icall.c: added GetUninitializedObjectInternal internal call.
29529
29530 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
29531
29532         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
29533         to the right domain.
29534
29535 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
29536
29537         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
29538
29539         * class.c (class_compute_field_layout): set blittable to false for Strings
29540
29541         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
29542
29543 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
29544
29545         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
29546         first chunk of code to create types at runtime. Code to
29547         handle ReflectedType/DeclaringType. Make reflection handles
29548         domain specific.
29549
29550 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
29551
29552         * class.c: set correct name in arrays.
29553
29554 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
29555
29556         * appdomain.c (mono_domain_transfer_object): make it work with
29557         valuetypes. bug fixes.
29558
29559 2002-08-12  Dick Porter  <dick@ximian.com>
29560
29561         * object.h: Rename some parameters to avoid c++ keywords (Patch
29562         from Joseph Wenninger <kde@jowenn.at>)
29563
29564 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
29565
29566         * icall.c: added icall to implement Assembly.GetFile*.
29567
29568 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
29569
29570         * reflection.h, reflection.c: code to embed managed resources.
29571
29572 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
29573
29574         * class.c: move all the type size stuff into
29575         class_compute_field_layout().
29576
29577 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
29578
29579         * class.c: ensure enums have always the correct instance size.
29580         * unicode.c: remove wrong assert.
29581
29582 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
29583
29584         * assembly.c: fix mem corruption issue.
29585         * image.h, image.c: added mono_image_get_resource () to access
29586         managed resources.
29587         * icall.c: implemented Assembly.EntryPoint property and some
29588         Managed Resources related internalcalls.
29589
29590
29591 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
29592
29593         * image.c, image.h: impemented mono_image_get_entry_point ().
29594         * appdomain.c: use mono_image_get_entry_point.
29595
29596 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
29597
29598         * reflection.c: support the object type argument when loading
29599         custom attributes.
29600
29601 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
29602
29603         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
29604         String as return type.
29605
29606 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
29607
29608         * reflection.c: fix encoding of named args for custom attrs to match
29609         the ms implementation. Read them back when instantiating custom
29610         attributes.
29611
29612 2002-08-02  Radek Doulik  <rodo@ximian.com>
29613
29614         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
29615         by Dietmar as quick fix
29616         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
29617         16 as stack size, used on more places as quick fix before Dietmar
29618         will fix it properly
29619
29620 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
29621
29622         * object.h, object.c: added accessors for fields and properties.
29623
29624 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
29625
29626         * class.c, class.h: made mono_class_get_field_from_name ()
29627         loop on parent types.
29628         Added mono_class_get_property_from_name ().
29629
29630 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
29631
29632         * class.c, class.h: move the code to setup the type vtable in its own
29633         function so that it can be reused also for types created at runtime.
29634         Eliminate the "class" identifier from the header file.
29635         * reflection.c: setup the vtable for enums so that we can create
29636         objects for use in SetConstant ().
29637
29638 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
29639
29640         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
29641         instead of the delegate itself as this pointer (bug #28383)
29642
29643 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
29644
29645         * marshal.c (mono_marshal_get_managed_wrapper): added return type
29646         conversions.
29647
29648 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
29649
29650         * loader.c: don't set the pinvoke bit on icalls.
29651
29652 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
29653
29654         * debug-helpers.c (mono_method_full_name): only print a number to
29655         indicate wrapper type (so that the output is more readable in traces).
29656
29657 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
29658
29659         * class.c (mono_class_init): include method override patch from Paolo
29660
29661 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
29662
29663         * icall.c: fixed GetTypeCode().
29664
29665 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
29666
29667         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
29668         use real delegate invoke function to make it work with multicast
29669         delegates (fix bug# 28291).
29670
29671 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
29672
29673         * object.c: load constant strings.
29674
29675 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
29676
29677         * reflection.c: no magic numbers.
29678         * tabledefs.h: security action enum.
29679
29680 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
29681
29682         * assembly.c: fix possible memory corruption.
29683
29684 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
29685
29686         * reflection.h, reflection.c: added support for linking resources.
29687         * verify.c: check we have an updated corlib.
29688
29689 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
29690
29691         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
29692         string arrays.
29693         (mono_marshal_string_array): null terminate unmanaged string arrays.
29694         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
29695
29696 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
29697
29698         * icall.c: Type.GetType () can now return also types from the
29699         calling assembly.
29700
29701 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
29702
29703         * loader.h, loader.c: stack walking support.
29704         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
29705         GetCallingAssembly.
29706
29707 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
29708
29709         * marshal.c: added optimisations for blittable types 
29710
29711         * class.c (mono_array_class_get): do not set blittable attribute on arrays
29712         (mono_class_setup_mono_type): set blittable attribute for single
29713         and double.
29714
29715         * marshal.c (mono_string_utf8_to_builder): impl.
29716         (mono_string_builder_to_utf8): impl.
29717         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
29718
29719 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
29720
29721         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
29722         (mono_marshal_get_managed_wrapper): impl. byref types
29723
29724 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29725
29726         * icall.c:
29727         (search_method): don't display debug message. 
29728
29729 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
29730
29731         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
29732
29733 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
29734
29735         * appdomain.c: set the missing filename when throwing exception.
29736
29737 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
29738
29739         * metadata.c (mono_type_size): code cleanup
29740         (mono_type_stack_size): removed some test code
29741
29742 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
29743
29744         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
29745         mono_get_exception_file_not_found now.
29746
29747         * exception.c (mono_exception_from_name_two_strings): New version
29748         that will call a constructor with two string arguments. 
29749         (mono_get_exception_file_not_found): New helper routine, used to
29750         report file-not-found errors.
29751
29752 2002-07-20  Dick Porter  <dick@ximian.com>
29753
29754         * process.h:
29755         * process.c: Pass file handles to CreateProcess
29756         
29757         * icall.c:
29758         * file-io.h:
29759         * file-io.c: Implemented CreatePipe
29760
29761 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
29762
29763         * metadata.c (mono_get_param_info): set alignment for value types
29764
29765 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
29766
29767         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
29768         Constify mono_domain_assembly_open().
29769         * loader.c: handle null namespace in icalls.
29770
29771 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
29772
29773         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
29774         (emit_str_to_ptr_conv): marshal object as structs
29775
29776         * metadata.c (mono_type_to_unmanaged): marshal object as structs
29777
29778         * marshal.c (mono_marshal_get_runtime_invoke): support value types
29779
29780 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
29781
29782         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
29783         (mono_marshal_get_native_wrapper): we an now return value types
29784
29785 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
29786
29787         * verify.c: more checks implemented.
29788
29789 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
29790
29791         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
29792         (fix bug #27695)
29793         (mono_marshal_get_native_wrapper): allow byref arguments
29794         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
29795         impl. PtrToStringXXX methods
29796         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
29797         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
29798         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
29799         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
29800         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
29801
29802 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
29803
29804         * reflection.c: fix buglet in parsing an assembly name.
29805
29806 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
29807
29808         * marshal.c (emit_ptr_to_str_conv): first impl.
29809
29810 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
29811
29812         * object.c, class.h: cache the vtable in the class as suggested by
29813         vargaz@freemail.hu (Zoltan Varga).
29814
29815 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
29816
29817         * class.h, loader.c: added mono_field_from_token().
29818         * verify.c: first cut of type checking code.
29819
29820 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
29821
29822         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
29823
29824 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
29825
29826         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
29827         (fix bug #27782)
29828         (mono_marshal_get_remoting_invoke): impl.
29829         (mono_delegate_begin_invoke): impl.
29830         (mono_mb_emit_save_args): impl.
29831         (mono_delegate_end_invoke): impl.
29832         (mono_marshal_get_delegate_begin_invoke):
29833         (mono_marshal_get_delegate_end_invoke):
29834         (mono_marshal_get_delegate_invoke): generate a special name for
29835         those methods (including the signature) and associate them whith
29836         the delegate class. 
29837
29838 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
29839
29840         * reflection.[ch]: 
29841         (mono_reflection_type_from_name): now it has a MonoImage parameter
29842         which is used as the default image to search the type in. If the image
29843         is NULL or getting the type from it fails, it defaults to corlib.
29844
29845         * icall.c: changed 1 call to mono_reflection_type_from_name to match
29846         new parameter.
29847
29848 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
29849
29850         * reflection.c: update the parameter table index.
29851
29852 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
29853
29854         * domain.c: don't include the mark byte in the string hash.
29855
29856 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
29857
29858         * icall.cs: icall for Type.GetTypeCode ().
29859         * verify: a couple of fixes and disabled local initialization checks.
29860
29861 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
29862
29863         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
29864
29865         * debug-helpers.c (mono_method_full_name): print the type of the
29866         runtime wrapper
29867
29868         * metadata.c (mono_signature_hash): a hash function for signatures
29869         (mono_signature_hash): better hash algorithm
29870
29871         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
29872
29873         * debug-helpers.c (mono_method_full_name): this can now generate
29874         method names with signatures
29875
29876         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
29877         method dont have this pointers.
29878
29879 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
29880
29881         * reflection.c: fixup typebuilder tokens.
29882         * image.c: fix buglet.
29883         * marshal.h: remove whitespace.
29884         * metadata.h, metadata.c: reinstate code that was removed.
29885         * verify.c: handle catch directives and fix another couple of bugs.
29886
29887 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
29888
29889         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
29890         (mono_marshal_get_native_wrapper): make it comp. with the old code
29891         (mono_marshal_get_native_wrapper): support boolean
29892         (mono_marshal_get_managed_wrapper): support more types
29893
29894 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
29895
29896         * class.c (class_compute_field_layout): compute class->blittable attribute.
29897
29898 2002-07-09  Dick Porter  <dick@ximian.com>
29899
29900         * threads.c: Make the thread cleaning up cope with threads that
29901         call ExitThread()
29902
29903 2002-07-08  Radek Doulik  <rodo@ximian.com>
29904
29905         * reflection.c (method_encode_code): use non-translated values to
29906         compute finally_start, this fixes exception handling on ppc, yay!
29907
29908         * decimal.h (struct signscale): fix endianess
29909
29910 2002-07-07  Radek Doulik  <rodo@ximian.com>
29911
29912         * reflection.c: swap box_val and not val
29913
29914 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
29915
29916         * reflection.c, reflection.h: handle full assembly info in type name.
29917         Handle Type arguments when loading custom attributes.
29918         * icall.c: updated to use new mono_reflection_type_from_name () method.
29919
29920 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29921
29922         * loader.c:
29923         (method_from_memberref): also print assembly name when method not found.
29924
29925 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29926
29927         * icall.c:
29928         (ves_icall_TypeGetProperties): fixed bug #27473. 
29929
29930 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29931
29932         * reflection.c: display image name and token when cannot find the
29933         .ctor for an attribute.
29934
29935 2002-07-05  Martin Baulig  <martin@gnome.org>
29936
29937         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
29938
29939 2002-07-04  Dick Porter  <dick@ximian.com>
29940
29941         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
29942         compile on mingw.  This will cause mingw builds to not wait for
29943         subthreads to terminate after the main thread does.  I've lodged a
29944         bug with the mingw developers for them to wrap OpenThread().
29945
29946 2002-07-03  Dick Porter  <dick@ximian.com>
29947
29948         * threads.c: Store thread IDs instead of handles, because
29949         GetCurrentThread() returns a pseudohandle and therefore stores
29950         useless values.  mono_thread_cleanup() continues checking the
29951         array of threads until it is empty, to cope with subthreads
29952         spawning new threads after the main thread has finished.
29953
29954         * profiler.h:
29955         * profiler.c:
29956         * profiler-private.h: Pass the thread ID to thread profiler
29957         functions, instead of a handle
29958
29959 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
29960
29961         * verify.c: fixes to make it more usable.
29962         * pedump.c: added --verify code to verify IL code in an assembly.
29963
29964 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
29965
29966         * reflection.c: turn errors into warnings to allow compiling corlib.
29967
29968 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
29969
29970         * reflection.c: add special cases to compile corlib.
29971
29972 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
29973
29974         * reflection.c: handle properties with only a set method.
29975
29976 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
29977
29978         * opcodes.h: add enum with opcodes in opval order.
29979
29980 2002-07-01  Dick Porter  <dick@ximian.com>
29981         
29982         * object.h:
29983         * object.c (mono_runtime_run_main): Removed unneeded argument
29984
29985 2002-06-28  Martin Baulig  <martin@gnome.org>
29986
29987         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
29988
29989 2002-06-27  Dick Porter  <dick@ximian.com>
29990
29991         * threads.c: Store the handle in both the parent thread and in the
29992         subthread, to minimise the time between starting a new thread and
29993         storing its ID.
29994
29995 2002-06-26  Dick Porter  <dick@ximian.com>
29996
29997         * appdomain.c (mono_runtime_cleanup): Close the socket library
29998         after all the threads have finished, not before
29999
30000 2002-06-26  Martin Baulig  <martin@gnome.org>
30001
30002         * debug-symfile.c (mono_debug_find_source_location): Added
30003         `guint32 *line_number' argument.  If it's not NULL, store the line number
30004         there and return the file name without the line number.
30005
30006 2002-06-25  Dick Porter  <dick@ximian.com>
30007
30008         * icall.c:
30009         * process.h:
30010         * process.c: Process forking and other support functions
30011
30012 2002-06-25  Dick Porter  <dick@ximian.com>
30013
30014         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
30015         things dont happen when the image is closed.
30016         (mono_image_lookup_resource): Walk the resource section looking
30017         for a particular entry
30018
30019         * cil-coff.h: PE resource section decoding
30020
30021 2002-06-25  Dick Porter  <dick@ximian.com>
30022         
30023         * assembly.h:
30024         * assembly.c: 
30025         (mono_assembly_foreach): Accessor functions to walk the list of
30026         loaded assemblies
30027         (mono_assembly_set_main):
30028         (mono_assembly_get_main): Process methods need to know which
30029         assembly is the "main" one
30030
30031         * object.c (mono_runtime_run_main): Record the main assembly
30032
30033         * debug-helpers.c: Fix typo
30034
30035 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
30036
30037         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
30038         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
30039
30040 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
30041
30042         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
30043
30044 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
30045
30046         * image.c (do_mono_image_open): Initialize reference count,
30047         otherwise we leak the MonoImage.
30048
30049 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
30050
30051         * reflection.c: small tweak to handle self-hosting.
30052
30053 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
30054
30055         * reflection.c: fix type name parse code.
30056
30057 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
30058
30059         * reflection.c: break out of the loop.
30060         * image.c: special case corlib.
30061
30062 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
30063
30064         * reflection.c: add all the custom attrs at the end to ensure the
30065         ctors have been properly initialized when the attributes are defined
30066         in the current assembly.
30067
30068 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
30069
30070         * reflection.c: handle correctly multiple-nested types.
30071
30072 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
30073
30074         * row-indexes.h: fix typos.
30075         * reflection.c: adjust for typos and fix method_def_or_ref
30076         encoding in MethodImpl table.
30077
30078 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
30079
30080         * reflection.c: fix entry point patching (thanks Serge!).
30081
30082 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
30083
30084         * verify.c: add check for System.Exception
30085
30086 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
30087
30088         * image.c, class.c: minifix for code just c&p'ed.
30089         * reflection.c: warning fix.
30090         * object.h, loader.h, domain.c: load also StringBuilder.
30091
30092 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
30093
30094         * marshal.h, marshal.c: some support code to handle complex marshaling.
30095
30096 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
30097
30098         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
30099         Better signatures with vtable error dump.
30100
30101 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
30102
30103         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
30104
30105 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
30106
30107         * icall.c (ves_icall_Type_GetField): impl.
30108
30109 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
30110
30111         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
30112         to retrieve a marshal description blob for a field or param.
30113
30114 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
30115
30116         * reflection.h, reflection.c: change order of nested type emission
30117         to avoid table corruption. The NestedTypes table is sorted.
30118         * icall.c: change order of GetConstructor results to workaround mcs bug.
30119
30120 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
30121
30122         * reflection.h, reflection.c: handle field and param marshal
30123         information.
30124
30125 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
30126
30127         * icall.c, marshal.c marshal.h: more Marshal class implementation.
30128
30129 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
30130
30131         * reflection.c: fix call convention.
30132
30133 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
30134
30135         * reflection.h, reflection.c: mono_image_get_memberref_token()
30136         takes a type instead of a class, now. Added
30137         mono_image_get_array_token() to create tokens for the special
30138         multi-dim array methods.
30139
30140 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
30141
30142         * assembly.c: handle modules (no assembly table). Split
30143         loading references in its own function.
30144         * class.c: handle moduleref resolution scope.
30145         * image.c, image.h: cache module name in image.
30146
30147 2002-06-07  Martin Baulig  <martin@gnome.org>
30148
30149         * reflection.c (mono_image_get_type_info): Only add a class layout entry
30150         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
30151
30152 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
30153
30154         * icall.c: more signature fixes that used uint instead of int.
30155
30156 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
30157
30158         * reflection.c: fixed signature of field refs.
30159
30160 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
30161
30162         * class.c, reflection.c: handle typerefs of nested types
30163         (both on read and when writing files).
30164
30165 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
30166
30167         * icall.c: fix method signatures that tried to workaround the previous
30168         typo, d'oh!
30169
30170 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
30171
30172         * debug-helpers.c: fix typo.
30173
30174 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
30175
30176         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
30177         rewrote the PE/COFF writing code (our programs are understood by the
30178         ms runtime, now).
30179
30180 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
30181
30182         * gc.c, gc.h, icall.c: weakreference support.
30183
30184 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
30185
30186         * Makefile.am, mono-config.c: use $(sysconfdir).
30187
30188 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
30189
30190         * icall.c: changed default precision of Double.ToString() to 15.
30191         Fixed memory leak. Unified with Single.ToString.
30192
30193 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
30194
30195         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
30196
30197 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
30198
30199         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
30200         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
30201         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
30202         and myself.
30203
30204 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
30205
30206         * debug-symfile.c, sysmath.c: yet more compilation fixes.
30207
30208 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
30209
30210         * reflection.c, socket-io.c: more compilation fixes.
30211
30212 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
30213
30214         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
30215         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
30216         unicode.c: warning and compiler compatibility fixes.
30217
30218 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
30219
30220         * class.h, metadata.c: fixed warnings/compilation errors.
30221
30222 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
30223
30224         * Makefile.am, mono-config.c, mono-config.h: configuration file
30225         support routines.
30226         * loader.c, loader.h: make Dll mapping configurable at runtime in the
30227         config file. Export methods to insert and lookup mappings.
30228
30229 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
30230
30231         * reflection.c: handle types and boxed objects in custom attr
30232         constructors.
30233
30234 2002-05-30  Martin Baulig  <martin@gnome.org>
30235
30236         * debug-symfile.c
30237         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
30238
30239 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
30240
30241         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
30242         to lookup the implmap row for a P/Invoke method.
30243         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
30244         P/Invoke method from the runtime on an as needed basis.
30245
30246 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
30247
30248         * metadata.c (mono_metadata_parse_signature): impl.
30249
30250 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
30251
30252         * class.c: handle .pack directive.
30253
30254 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
30255
30256         * object.c: initialize static fields with RVA data.
30257
30258 2002-05-25  Martin Baulig  <martin@gnome.org>
30259
30260         * debug-symfile.c
30261         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
30262
30263 2002-05-24  Martin Baulig  <martin@gnome.org>
30264
30265         * debug-symfile.c
30266         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
30267         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
30268         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
30269
30270 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
30271
30272         * object.c: special case string ctros in invoke.
30273         * gc.c: silly whitespace changes.
30274
30275 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
30276
30277         * threadpool.[ch]: impl. a threadpool that can
30278         be used by mint and mono.
30279
30280 2002-05-22  Martin Baulig  <martin@gnome.org>
30281
30282         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
30283         The first argument is now a `MonoReflectionModuleBuilder *', the return
30284         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
30285         `methods' field to get the method builder.  The `token' argument is the
30286         unfixed token.
30287
30288         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
30289         invalid characters instead of g_assert_not_reached()ing.  This seems
30290         to be the behaviour of mscorlib.
30291
30292 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
30293
30294         * object.c (mono_runtime_invoke_array): applied patch from Rachel
30295         Hestilow to fix bug #25104
30296
30297 2002-05-21  Martin Baulig  <martin@gnome.org>
30298
30299         * debug-symfile.c (mono_debug_find_source_location): New function.
30300         Looks up an IL offset in the line number table and returns the source
30301         location as a string.
30302
30303 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
30304
30305         * icall.c:
30306         (mono_double_ToStringImpl): changed %f by %g until we have something
30307         better.
30308
30309 2002-05-21  Nick Drochak  <ndrochak@gol.com>
30310
30311         * icall.c : Use different name for Math.Pow's icall.  Needed to check
30312         parameters first in C#.
30313
30314 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
30315
30316         * icall.c, reflection.h: added icall to get info about an event.
30317
30318 2002-05-20  Radek Doulik  <rodo@ximian.com>
30319
30320         * object.c (mono_value_box): don't use memcpy for boxing on BIG
30321         endian
30322         (mono_value_box): don't use memcpy for small sizes on
30323         architectures with unaligned access
30324
30325 2002-05-20  Martin Baulig  <martin@gnome.org>
30326
30327         * reflection.c (mono_reflection_setup_internal_class): Don't crash
30328         if `tb->parent == NULL'.
30329         (mono_reflection_create_internal_class): New function.  This is
30330         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
30331         for enum types.
30332
30333         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
30334         New interncall.
30335
30336 2002-05-19  Martin Baulig  <martin@gnome.org>
30337
30338         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
30339         argument to get the length, don't default to the array length.
30340
30341 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
30342
30343         * assembly.c (mono_assembly_setrootdir): New function used to
30344         override the MONO_ASSEMBLIES directory.
30345
30346 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
30347
30348         * icall.c: ValueType_GetHashCode() initialize local var.
30349
30350 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
30351
30352         * reflection.c: sort custom attributes table.
30353
30354 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
30355
30356         * reflection.c: support named args in custom attributes (write support).
30357
30358 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
30359
30360         * reflection.c: fix finally position calculation.
30361
30362 2002-05-15  Radek Doulik  <rodo@ximian.com>
30363
30364         * reflection.c: fixed endianess at many places
30365
30366         * icall.c (ves_icall_InitializeArray): comment out debug msg
30367
30368 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
30369
30370         * object.c (mono_unhandled_exception): new function to handle
30371         unhandled exceptions.
30372         (mono_unhandled_exception): call the UnhandledException event.
30373         (mono_runtime_delegate_invoke): impl.
30374
30375 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
30376
30377         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
30378         returns the RVA, not the direct pointer to the data. Handle the case
30379         when the class size is fixed.
30380
30381 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
30382
30383         * reflection.c: fix some endianess issues.
30384
30385 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
30386
30387         * object.c (mono_runtime_invoke): is now able to catch exceptions.
30388
30389         * threads.c (mono_thread_init): added a callback which is invoked
30390         at thread start.
30391
30392 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
30393         
30394         * icall.c: make GetHashCode return non-negative values.
30395
30396 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
30397
30398         * object.c, icall.c, gc.c: revert to address-based hashcode.
30399
30400 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
30401
30402         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
30403
30404 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
30405
30406         * icall.c, class.c: special case <Module>.
30407
30408 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
30409
30410         * icall.c: fix bug in GetNow().
30411
30412 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
30413
30414         * object.c (mono_runtime_class_init): make sure that we call all
30415         static class constructors.
30416
30417 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
30418
30419         * reflection.c: sort methodsemantics table.
30420
30421 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
30422
30423         * reflection.h, reflection.c: honour init locals setting.
30424
30425 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
30426
30427         * icall.c: copied Double ToStringImpl for Single ToStringImpl
30428
30429 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
30430
30431         * reflection.c: support ContructorBuilders in attribute blob creation.
30432
30433 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
30434
30435         * reflection.c: some changes to build a binary that can be run
30436         directly in windows.
30437
30438 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
30439
30440         * loader.c: print a big message when an icall can't be found.
30441
30442 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
30443
30444         * string-icalls.c: fix bug 24248.
30445
30446 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
30447
30448         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
30449         icall.c, reflection.h: separate assembly loading by pathname and by
30450         assembly name. Use the MONO_PATH env var to search for assemblies.
30451
30452 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
30453
30454         * assembly.c, image.h: add some support for assemblies
30455         with multiple modules.
30456         * class.c, class.h: export mono_class_from_typeref().
30457         * loader.c: remove duplicated code and use mono_class_from_typeref(),
30458         instead.
30459
30460 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
30461
30462         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
30463         documentation says (the ECMA one is correct).
30464
30465 2002-05-02  Dick Porter  <dick@ximian.com>
30466
30467         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
30468         Don't name the synchronisation mutex.
30469
30470 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
30471
30472         * rand.c
30473         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
30474         Make the prototypes match.
30475         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
30476         Same.
30477
30478         * icall.c
30479         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
30480         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
30481         all systems have tm.tm_zone, so use strftime() with %Z to print
30482         the timezone abreviation into a temp string.
30483
30484         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
30485         rather than mono_array_addr() on a MonoString on Big Endian
30486         machines.
30487
30488 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
30489
30490         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
30491         fix bug 24041
30492
30493 2002-04-30  Dick Porter  <dick@ximian.com>
30494
30495         * socket-io.c: Cope with SOCKET being an integer rather than a
30496         pointer now.
30497
30498         * threads.c: Added Thread_free_internal, to deal with thread
30499         handle cleanup.  Moved calls to handle_store() and handle_remove()
30500         to start_wrapper(), so each can only be called once.  Allocate
30501         synchronisation blocks with GC_malloc(), and use GC finalisation
30502         to close the handles.
30503
30504         * icall.c: added System.Threading.Thread::Thread_free_internal
30505
30506 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
30507
30508         * icall.c: support Environment.Exit, CommandLineArgs().
30509
30510 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
30511
30512         * object.c, object.h: added mono_runtime_run_main () and
30513         mono_runtime_get_main_args () for use in System.Environment.
30514
30515 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
30516
30517         * gc.c: fix thinko, enable actual finalization since the jit is now
30518         fixed.
30519
30520 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
30521
30522         * gc.c, object.c: take into account that an object may be offset wrt the address
30523         returned by GC_malloc().
30524
30525 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
30526
30527         * image.c: handle files without entries in the assembly table (modules).
30528
30529 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
30530
30531         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
30532         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
30533         allowed to be null when it's System.Object class setup.
30534
30535 2002-04-27  Martin Baulig  <martin@gnome.org>
30536
30537         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
30538         if `tb->parent == NULL' rather than crashing.
30539
30540 2002-04-28  Nick Drochak  <ndrochak@gol.com>
30541
30542         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
30543         calling acos() where asin() should have been called.
30544
30545 2002-04-26  Martin Baulig  <martin@gnome.org>
30546
30547         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
30548         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
30549         there's a subdirectory called `System', but we don't want to read that
30550         subdirectory as an assembly.
30551
30552 2002-04-25  Martin Baulig  <martin@gnome.org>
30553
30554         * debug-symfile.c: Reflect latest MonoString changes.
30555
30556 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
30557
30558         * rand.c, rand.h: instance method icalls need to have an explicit
30559         this pointer as first argument in the C implementation.
30560
30561 2002-04-25  Nick Drochak <ndrochak@gol.com>
30562
30563         * icall.c: Fix typo in map for GetNonZeroBytes
30564
30565 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
30566
30567         * string-icalls.c : String does now passes unit tests without any 
30568         errors, the following changes has been made:
30569         
30570         Implemented replace methods.
30571         Renaming of methods to (try) follow the standard.
30572         Fixed compare ordinal
30573         Made all memory allocated directly to function instead of via icall function.
30574         Small performance fix in is_in_array function
30575                         
30576  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
30577
30578         c (mono_string_Internal_ctor_charp_int_int):
30579         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
30580         sindex < 0, throw ArgumentOutOfRangeException instead of
30581         ArgumentNullException.
30582
30583         Added new check for length == 0, however
30584         I need to make it return String.Empty from the C code.
30585         
30586         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
30587         that calculate the length for us here.
30588         
30589         (mono_string_Internal_ctor_sbytep_int_int): Replaced
30590         mono_string_new_utf16 with mono_string_new, since value is utf8.
30591
30592 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
30593
30594         * object.c: register the object for finalization if needed.
30595         Allocate one more char in the string for the terminating 0 char.
30596
30597 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
30598
30599         * class.c, class.h, image.c: check if a type implemenst a destructor.
30600         Use the proper key for array class lookups.
30601         * icall.c: register the icalls in the System.GC class.
30602         * gc.c, gc.h: GC-related functions and icalls.
30603
30604 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
30605
30606         * icall.c:
30607         * socket-io.c:
30608         * unicode.c: free some strings gotten from mono_string_to_utf8 and
30609         changed a couple of free () by g_free ().
30610
30611         * decimal.c: one-liner in the comments for decimal2string ().
30612
30613 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
30614
30615         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
30616
30617 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
30618
30619         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
30620         * object.c (mono_runtime_invoke_array) : handle null in params
30621
30622 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
30623
30624         * string-icalls.c: fixed bug in split (one off bug)
30625
30626 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
30627
30628         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
30629         * icalls.c: added String::Equals as internal method
30630
30631 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
30632
30633         * threads.c: fixed bug in the double interlocked functions
30634
30635 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
30636
30637         * threads.c: implemented all of the new interlocked icalls.
30638         * string-icalls.c: fix a bug in insert.
30639         * icalls.c: added the icalls for interlocked, removed old string functions.
30640         
30641 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
30642
30643         * loader.c: fix off-by-one error when reading argument names.
30644
30645 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
30646
30647         * profiler.c: win32 counter implementation (untested).
30648         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
30649         (the latter needs testing and more complete impl. from win32 folks).
30650
30651 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
30652
30653         * object.c: mono_array_new_full workaround mono_array_class_get
30654         problem.
30655
30656 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
30657
30658         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
30659         * object.h (mono_string_chars): Changed casting type.
30660
30661 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
30662
30663         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
30664                            method signatures to use gunichar2 instead of gint16.
30665
30666 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
30667
30668         * object.h, object.c: domain-specific versions of mono_object_new and
30669         mono_array_new.
30670
30671 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
30672
30673         * object.c: changed String layout
30674
30675         * string-icalls.c (mono_string_Internal_ctor_chara): added
30676         internal string constructors.
30677
30678 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
30679
30680         * threads.c: pass 'this' to the thread start routine.
30681
30682 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
30683
30684         * string-icalls.c: fix IndexOf and LastIndexOf. Now
30685         InternalCompareStr don't call twice mono_string_cmp_char for the last
30686         character. Improved performance in mono_string_cmp_char.
30687
30688 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
30689
30690         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
30691         code into its own library: libmonoruntime.
30692
30693 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
30694
30695         * object.h, object.c: changed array format so that szarrays do not
30696         require a bounds structure.
30697         * icall.c, appdomain.c: support for new szarray format.
30698
30699 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
30700
30701         * metadata.c: compare also the retuns type when comparing signatures:
30702         we didn't do this as an optimization since really overloaded methods
30703         must differ also in the arguments, but this doesn't work with
30704         low-level IL code (or when using explicit conversion operators: see
30705         bug#23498 for an example).
30706
30707 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
30708
30709         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
30710
30711 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
30712
30713         * icall.c: make MonoType::GetElementType its own icall.
30714
30715 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
30716
30717         * icall.c: remove MonoMethod_get_Name().
30718         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
30719         object.
30720
30721 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
30722
30723         * string-icalls.c: optimized a few methods.
30724
30725 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
30726
30727         * icall.c: added all new string internal calls
30728         * string-icalls.c: added, new string internal call implementation.
30729         * object.c: added mono_string_new_size for allocating a string a size
30730
30731 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
30732
30733         * object.c (mono_object_isinst): use the same code as in the
30734         optimized x86 version.
30735
30736 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
30737
30738         * profiler.c: TSC-based timer code (faster and more accurate).
30739         Not hooked up in configure, yet (set USE_X86TSC to 1).
30740
30741 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
30742
30743         * profiler.c, profiler.h: track time spent compiling methods.
30744         * threads.c: track thread creation/destruction.
30745
30746 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
30747
30748         * profiler.c, profiler.h, profiler-private.h: profiling interface
30749         and sample implementation. Moved here so that it can be used also by
30750         the jit.
30751
30752 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
30753
30754         * reflection.c, reflection.h: keep types and other handles separate in
30755         the hash tables for referred tokens. Add guid for modules.
30756
30757 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
30758
30759         * assembly.c: fix bugs found with valgrind.
30760         * metadata.h, metadata.c: added mono_metadata_guid_heap().
30761
30762 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
30763
30764         * threads: added icall support for getting current domain for
30765                    the thread.
30766  
30767 2002-04-13  Martin Baulig  <martin@gnome.org>
30768
30769         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
30770         (MonoDebugVarInfo): Added `index' field for register based addresses.
30771         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
30772         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
30773         `MonoDebugVarInfo *params' and `guint32 this_offset' with
30774         `MonoDebugVarInfo *this_var'.
30775
30776         * debug-symfile.c (relocate_variable): New static function to write
30777         a location description for a local variable or method parameter.
30778
30779 2002-04-12  Martin Baulig  <martin@gnome.org>
30780
30781         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
30782         stack offset and begin/end scope address of a local variable.
30783         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
30784         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
30785         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
30786
30787         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
30788         Added new relocation types for start/end scope of a local variable.
30789
30790 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
30791
30792         * object.h: add mono_object_domain() macro.
30793         * reflection.c: handle typespecs.
30794         * icall.c: MonoMethod::get_Name() implementation.
30795
30796 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
30797
30798         * icall.c: String::GetHashCode() icall implementation.
30799
30800 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
30801
30802         * icall.c: String::IndexOfAny icall.
30803         * object.c, object.h: make array->max_length more useful.
30804         Intrduced mono_object_class() and mono_string_length() macros.
30805
30806 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
30807
30808         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
30809         instead of g_unichar_isdigit.
30810
30811 2002-04-11  Nick Drochak  <ndrochak@gol.com>
30812
30813         * icall.c: Implement a simple Double.ToString().
30814
30815 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
30816
30817         * appdomain.h: only io-layer.h is supposed to be included.
30818         * icall.c: explicitly import environ. Fix warning.
30819
30820 2002-04-10  Nick Drochak  <ndrochak@gol.com>
30821
30822         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
30823                 return true even if it's not Daylight Savings time.
30824                 Only return false for the case where the function isn't
30825                 implemented for a plaform (read Windows).
30826
30827 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
30828
30829         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
30830         data with a mutex.
30831
30832 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
30833
30834         * mempool.c (mono_mempool_alloc): only use g_malloc when
30835         absolutely necessary.
30836
30837 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
30838
30839         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
30840
30841         * class.c (mono_class_vtable): use domain mempool to allocate vtable
30842         (mono_class_proxy_vtable): use domain mempool
30843
30844 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
30845
30846         * appdomain.h, appdomain.c: split initialization that requires the
30847         execution engine support into mono_runtime_init().
30848
30849 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
30850
30851         * class.c (mono_class_init): don't include vtable inside MonoClass
30852         to save some memory, gather some statistics.
30853         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
30854
30855 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
30856
30857         * icall.c: internalcall implementation for ValueType.Equals().
30858
30859 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
30860
30861         * object.c (mono_message_init): moved 
30862         (mono_runtime_exec_main): new arch. independent impl.
30863         (mono_runtime_invoke_array): new method - like
30864         mono_runtime_invoke, but you can pass an array of objects.
30865         (mono_remoting_invoke): new arch. independent impl.
30866         (mono_message_invoke): new arch. independent impl.
30867         (mono_runtime_class_init): new arch. independent impl.
30868         (mono_runtime_object_init): new arch. independent impl.
30869
30870 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
30871
30872         * metadata.c, object.c, reflection.c: documented the exported
30873         functions.
30874
30875 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
30876
30877         * icall.c: simpler code to pass the assembly builder data to corlib.
30878         Implement GetNestedTypes() internalcall.
30879
30880 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
30881
30882         * class.c: warn if a type can't be loaded.
30883
30884 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
30885
30886         * image.h: typedef MonoImageOpenStatus
30887         * types.h: removed unused file
30888         
30889 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
30890
30891         * icall.c: Enum_ToObject accepts enum value arguments.
30892
30893 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
30894
30895         * class.c: move initialization of properties, events and nested
30896         classes, so that they happen for interfaces, too.
30897
30898 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
30899
30900         * icall.c: cleanup some ugly casts in Array_SetValue*.
30901
30902 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
30903
30904         * icall.c: the values array fro enums is of the correct type, now.
30905         Implement (correctly) getFullName instead of assQualifiedName for
30906         MonoType.
30907         * reflection.h, reflection.c: added mono_type_get_name ().
30908
30909 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
30910
30911         * assembly.c, image.h: for each MonoImage, record from wich assembly
30912         it was loaded.
30913         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
30914         Make Type.Assembly work.
30915
30916 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
30917
30918         * debug-symfile.h: use char* instead of gpointer to avoid
30919         unnecessary casts.
30920
30921         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
30922
30923         * icall.c (ves_icall_InternalExecute): impl. FielSetter
30924         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
30925
30926 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
30927
30928         * icall.c (mono_message_init): impl. (code cleanup)
30929         (ves_icall_InternalExecute): impl. FieldGetter
30930
30931         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
30932         defined we call all (non-static)methods through the vtable. 
30933
30934 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
30935
30936         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
30937         finalizer even though the memory is still referenced (and the chunk of
30938         memory is not freed).
30939
30940 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
30941
30942         * assembly.c: fix brokeness.
30943
30944 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
30945
30946         * class.c: kill some warnings. Check explicit interface method
30947         implementation also without considering the namespace.
30948         Load also literal strings in static class data.
30949
30950 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
30951
30952         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
30953         (default_assembly_name_resolver): Make the resolver take the
30954         "base" directory where the assembly was originally defined, so we
30955         can load DLLs that are in the same directory as the assembly that
30956         is being referenced.
30957
30958 2002-03-28  Dick Porter  <dick@ximian.com>
30959
30960         * file-io.h: 
30961         * file-io.c:
30962         * socket-io.c: 
30963         * unicode.h: 
30964         * unicode.c: Warning cleanups
30965
30966 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
30967
30968         * object.h, reflection.h: use the correct type instead of MonoObject.
30969
30970 2002-03-28  Martin Baulig  <martin@gnome.org>
30971
30972         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
30973         (mono_debug_update_symbol_file): Initialize classes if necessary.
30974
30975 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
30976
30977         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
30978         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
30979
30980 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
30981
30982         * assembly.h: fix function prototype.
30983         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
30984         * mono-endian.h: use const cast.
30985
30986 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
30987
30988         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
30989
30990 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
30991
30992         * loader.c: don't assert when a typeref can't be loaded, give
30993         a chance to the runtime to trow an exception instead.
30994         * loader.h: fix warning.
30995
30996 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
30997
30998         * class.c (mono_class_proxy_vtable): added proxy support
30999
31000 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
31001
31002         * icall.c: removed last of PAL calls, added System.Environment
31003         * file-io.h, file-io.c: MonoIO implementation
31004         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
31005
31006 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
31007
31008         * appdomain.c: do not use the byte marker in ldstr table lookup.
31009         * debug-helpers.c: allow two ':' to separate class and method name.
31010         * object.c: allocate arrays bounds with the GC, too.
31011         * verify: add a few more checks.
31012
31013 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
31014
31015         * reflection.c: output also literal strings. Allocate parameter data
31016         with GC_malloc() (thanks, Martin, for catching this!).
31017
31018 2002-03-26  Martin Baulig  <martin@gnome.org>
31019
31020         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
31021         include the `this' offset in the `param_offsets'.
31022
31023 2002-03-25  Martin Baulig  <martin@gnome.org>
31024
31025         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
31026         mono_debug_get_class() function to get the classes. Added new
31027         relocation types for arrays and strings.
31028         (mono_debug_get_class): New static function to search in all
31029         referenced assemblies for a metadata token.
31030
31031         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
31032
31033 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
31034
31035         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
31036         hold gc-allocated objects. Make the string heap a stream like the
31037         others. Removed duplicated code when writing stream info.
31038         Added asserts to catch possible buffer overflows. Set the sorted map
31039         for tables that need sorting. Added some documentation.
31040
31041 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
31042
31043         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
31044         for interned strings and vtables.
31045
31046 2002-03-24  Martin Baulig  <martin@gnome.org>
31047
31048         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
31049         it in the array since it was created with g_slist_prepend().
31050
31051 2002-03-24  Martin Baulig  <martin@gnome.org>
31052
31053         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
31054         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
31055         (mono_debug_method_from_token): Renamed to
31056         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
31057         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
31058
31059         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
31060         relocation types.
31061
31062         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
31063
31064 2002-03-24  Martin Baulig  <martin@gnome.org>
31065
31066         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
31067         (mono_debug_method_from_token): New func.
31068
31069         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
31070         New interncall, calls mono_debug_local_type_from_signature().
31071         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
31072         calls mono_debug_method_from_token().
31073
31074 2002-03-23  Martin Baulig  <martin@gnome.org>
31075
31076         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
31077         specifies the number of bytes to be converted, not the array size.
31078         Return the number of chars, not the number of bytes.
31079         (ves_icall_iconv_get_chars): The `byteCount' argument
31080         specifies the number of bytes to be converted, not the array size.
31081
31082 2002-03-23  Martin Baulig  <martin@gnome.org>
31083
31084         * reflection.h (MonoReflectionSigHelper): New type.
31085
31086         * reflection.c (mono_reflection_sighelper_get_signature_local),
31087         (mono_reflection_sighelper_get_signature_local): New functions.
31088
31089         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
31090         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
31091         interncalls.
31092
31093 2002-03-23  Martin Baulig  <martin@gnome.org>
31094
31095         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
31096         is_writeable is set.
31097         (mono_raw_buffer_update): New function to write the modified map
31098         back to disk.
31099
31100         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
31101
31102         * debug-symfile.c (mono_debug_update_symbol_file): Call
31103         mono_raw_buffer_update() when done writing.
31104
31105 2002-03-23  Martin Baulig  <martin@gnome.org>
31106
31107         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
31108
31109         * debug-symfile.c: Added support for arguments and local variables.
31110
31111 2002-03-23  Dick Porter  <dick@ximian.com>
31112
31113         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
31114         protected by ifdefs, hence breaking the w32 build.
31115
31116 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
31117
31118         * object.c: implement is_interned() the right way.
31119
31120 2002-03-21  Martin Baulig  <martin@gnome.org>
31121
31122         * debug-symfile.[ch]: New files to handle debugging information
31123         files. There's also support to dynamically update these symbol
31124         files to include machine dependent information.
31125
31126 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
31127
31128         * threads.c (mono_thread_create): new function to create thread
31129         from C
31130
31131 2002-03-20  Martin Baulig  <martin@gnome.org>
31132
31133         * icall.c (ves_icall_InternalInvoke): Create a new object if the
31134         method is a constructor.
31135         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
31136         points to ves_icall_InternalInvoke().
31137
31138 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
31139
31140         * file-io.c: Flush shouldn't throw exceptions.
31141
31142 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
31143
31144         * file-io.c: FileStream flush support; FileSetLength now
31145         restores file pointer.
31146
31147 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
31148
31149         * class.c: set image for pointer classes.
31150
31151 2002/03/19  Nick Drochak <ndrochak@gol.com>
31152
31153         * sysmath.c: Forgot one.
31154
31155 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
31156
31157         * sysmath.c: Avoid redefining existing names.
31158
31159 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
31160
31161         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
31162         handled by runtime as icall rather than dllimport from libm.so
31163         * file-io.c, file-io.h: fixed handle argument type.
31164
31165 2002-03-18  Dick Porter  <dick@ximian.com>
31166
31167         * reflection.c (mono_image_get_type_info): rename interface to
31168         iface, because of "#define interface struct" on windows.
31169
31170 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
31171
31172         * class.c, class.h: rename and export mono_ptr_class_get().
31173         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
31174         * reflection.c, reflection.h, icall.c: better/saner type name
31175         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
31176         method signatures.
31177
31178 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
31179
31180         * class.c (mono_class_init): removed hardcoded GHC_SLOT
31181
31182         * icall.c (ves_icall_InternalInvoke): impl.
31183
31184 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
31185
31186         * reflection.c: output the interface map table, too.
31187
31188 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
31189
31190         * class.c (class_compute_field_layout): separate computation of 
31191         static field layout
31192
31193 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
31194
31195         * icall.c: added System.Buffer support.
31196         * file-io.c: moved file icalls from PAL to FileStream.
31197
31198 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
31199
31200         * icall.c (ves_icall_System_Object_GetHashCode): impl.
31201
31202 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
31203
31204         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
31205
31206 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
31207
31208         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
31209
31210 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
31211
31212         * debug-helpers.{c,h}: moved here from monograph some useful functions
31213         to locate a method by name/signature in a class or image. Included
31214         also a small and flexible IL disassembler.
31215
31216 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
31217
31218         * reflection.c: fixup tokens in methods with small header size, too.
31219
31220 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
31221
31222         * object.c (mono_string_to_utf8): remove assert(!error), instead
31223         print a warning. 
31224
31225 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
31226
31227         * icall.c: update to the new mono_Array_class_get interface.
31228
31229 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
31230
31231         * appdomain.c, object.c: Boehm-GC enable.
31232         * icall.c: make get_data_chunk() support split data requests.
31233         Ensure a class is initialized in more cases. Return only the first
31234         property found in GetProperties() or the compiler gets confused. 
31235         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
31236         * reflection.h, reflection.c: add fixup mechanism for field and method
31237         tokens. Initialize assembly->typeref in a single place. Output
31238         properties after events. Support custom attributes for events, too.
31239         Typo fix for paramter custom attrs.
31240
31241 2002-03-07  Martin Baulig  <martin@gnome.org>
31242
31243         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
31244
31245 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
31246
31247         * class.c (mono_array_class_get): fix. for multi. dim. arrays
31248
31249 2002-03-06  Martin Baulig  <martin@gnome.org>
31250
31251         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
31252         non-zero lower bounds. See testcases #F10-#F13.
31253
31254 2002-03-05  Martin Baulig  <martin@gnome.org>
31255
31256         * exception.c (mono_get_exception_argument_out_of_range): New exception.
31257
31258         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
31259         ves_icall_System_Array_GetValue(), only calculate the absolute array position
31260         here.
31261         (ves_icall_System_Array_SetValue): Likewise.
31262         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
31263         as argument and does the actual work. This function is used when copying a
31264         multi-dimensional array.
31265         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
31266         now do all the widening conversions of value types.
31267         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
31268
31269 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
31270
31271         * class.c: remove some magic numbers and use the smbolic names,
31272         instead. Added init_events() to load event info at class init time.
31273         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
31274         and mono_metadata_methods_from_event().
31275         * reflection.h, reflection.c: added support for writing out the evnets
31276         related information.
31277
31278 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
31279
31280         * reflection.h, icall.c: use a different method (GetInterfaces)
31281         to gather interface info and add isbyref, isprimitive and
31282         ispointer to the ves_icall_get_type_info() return value.
31283
31284 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
31285
31286         * class.h: stared adding support for events.
31287         * icall.c: split find_members implementation. Added debug icall to get
31288         the address of an object.
31289         * reflection.c: handle TypeBuilders in mono_type_get_object().
31290
31291 2002-03-01  Martin Baulig  <martin@gnome.org>
31292
31293         * icall.c (ves_icall_System_Array_GetLength): This must throw an
31294         ArgumentOutOfRangeException(), not an ArgumentException().
31295         (ves_icall_System_Array_GetLowerBound): Likewise.
31296         (ves_icall_System_Array_GetValue): Improved argument checking.
31297         (ves_icall_System_Array_SetValue): Improved argument checking.
31298
31299 2002-03-01  Martin Baulig  <martin@gnome.org>
31300
31301         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
31302         called with invalid arguments rather than just dying with g_assert().
31303         (ves_icall_System_Array_SetValue): Likewise.
31304         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
31305         raise a NotImplementedException instead.
31306         (ves_icall_System_Array_GetLength): Added argument checking.
31307         (ves_icall_System_Array_GetLowerBound): Added argument checking.
31308
31309 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
31310
31311         * object.h (mono_assert): new macros mono_assert and
31312         mono_assert_not_reached
31313
31314 2002-02-28  Martin Baulig  <martin@gnome.org>
31315
31316         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
31317         and "System::String::IsInterned" to "System::String::_IsInterned".
31318
31319 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
31320
31321         * icall.c: remove hacks for typebuilder. Added icall to create a
31322         modified type from a tybebuilder.
31323         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
31324         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
31325         to create a backing MonoClass for a TypeBuilder.
31326
31327 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
31328
31329         * class.c, class.h: more refactoring of class init.
31330         Export mono_class_setup_mono_type() and mono_class_setup_parent().
31331
31332 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
31333
31334         * marshal.c, marshal.h: start of marshaling interface.
31335
31336 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
31337
31338         * icall.c: fix order in assembly qualified name icall.
31339
31340 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
31341
31342         * class.c: do not free str, since we store it in the hash table.
31343         * reflection.h: add label field to MonoILExceptionInfo.
31344         * reflection.c: handle references to more than one assembly. Handle
31345         case when there isn't a module created in the assembly.
31346
31347 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
31348
31349         * class.c: Fix typo. Start refactoring of class init code.
31350
31351 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
31352
31353         * appdomain.c: exit with 1 on error.
31354         * class.c: we already have the name in MonoClassField.
31355         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
31356         MonoStreamHeader instead of an offset of image->raw_metadata.
31357
31358 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
31359
31360         * appdomain.c (mono_init): Be even more descriptive about the error.
31361
31362 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
31363
31364         * appdomain.c: give the user an informative message when corlib can't
31365         be loaded.
31366
31367 2002-02-26  Martin Baulig  <martin@gnome.org>
31368
31369         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
31370         New icall to get the time zone data.
31371
31372 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
31373
31374         * reflection.c: set virtual and raw size of section correctly.
31375         * threads.c: transfer domain information to newly created threads.
31376
31377 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
31378
31379         * class.c: when instancing a class in a domain, load the default
31380         vaules for static fields from the constant table. Fix System.Enum to
31381         not be an enum.
31382         * icall.c: implement Object::GetType() internalcall. Implemented
31383         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
31384         Fixed checking of binding flags in find_members().
31385         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
31386         * reflection.c: handle enumerations when writing to the constant
31387         table. Use a different object cache for types.
31388
31389
31390 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
31391
31392         * object.c (mono_object_isinst): fix for arrays
31393
31394         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
31395
31396 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
31397
31398         * object.c: don't use mprotect ()  and fix intern pool hash table
31399         lookup for big endian systems.
31400
31401 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
31402
31403         * icall.c: change type_is_subtype_of () signature.
31404
31405 2002-02-21  Mark Crichton  <crichton@gimp.org>
31406
31407         * rand.c, rand.h: Added random number generator for
31408         System.Security.Cryptography classes.
31409
31410         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
31411
31412         * icall.c: Added System.Security.Cryptography calls.
31413
31414 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
31415
31416         * class.c, icall.c, metadata.c: better support for pointer types.
31417         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
31418         * reflection.c: Add support for getting custom attrs for properties
31419         and simplify some code.
31420
31421 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
31422
31423         * icall.c: change getToken () and add custom attribute GetBlob()helper
31424         method.
31425         * reflection.h: add custom attrs array to the reflection builder structures.
31426         * reflection.c: encode and emit custom attributes for all the relevant
31427         reflection objects. Cache fieldref and methodref tokens. Change
31428         mono_image_create_token() interface to take a MonoDynamicAssembly.
31429         More complete custom attributes decoder. Load custom attributes for
31430         Assembly, Field, Method and Constructor objects, too. Make the
31431         returned array an Attribute[] one, not object[]. Added
31432         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
31433         custom attribute constructor.
31434
31435 2002-02-20  Dick Porter  <dick@ximian.com>
31436
31437         * icall.c:
31438         * rawbuffer.c:
31439         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
31440         problem code out for now).
31441
31442 2002-02-19  Radek Doulik  <rodo@ximian.com>
31443
31444         * object.c (mono_ldstr): use hash table to avoid multiple swapping
31445
31446 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
31447
31448         * icall.c: register the GetCustomAttributes method.
31449         * object.c, object.h: add mono_string_new_len ().
31450         * reflection.h, reflection.c: added mono_runtime_invoke(),
31451         mono_install_runtime_invoke(). Added
31452         mono_reflection_get_custom_attrs () to load custom attributes and
31453         create the attribute objects.
31454
31455 2002-02-19  Dick Porter  <dick@ximian.com>
31456         * threads-dummy-types.c:
31457         * threads-dummy-types.h:
31458         * threads-dummy.c:
31459         * threads-dummy.h:
31460         * threads-pthread-types.c:
31461         * threads-pthread-types.h:
31462         * threads-pthread.c:
31463         * threads-pthread.h:  Deleted obsolete files
31464
31465 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
31466
31467         * class.c (mono_class_vtable): runtime init the class when we
31468         allocate static class data.
31469
31470         * icall.c (ves_icall_System_Array_SetValue): check for null values.
31471
31472         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
31473         and String - but we will need generic marshalling support in the
31474         future. 
31475         (mono_init): set the domain name in a ms compatible way
31476
31477         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
31478         String[].
31479
31480 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
31481
31482         * object.c (mono_array_clone): use alloca() instead of g_malloc  
31483         for sizes
31484
31485         * appdomain.c (mono_domain_unload): impl.
31486
31487 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
31488
31489         * appdomain.c, object.c: fix intern pool implementation.
31490         * class.c: fix alignment code.
31491
31492 2002-02-16  Radek Doulik  <rodo@ximian.com>
31493
31494         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
31495         and s2 > s1, just copy lower bytes to be compatible with little
31496         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
31497         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
31498
31499         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
31500         force big_endian to be 1 for big endian machines 
31501         (ves_icall_iconv_new_decoder): ditto
31502
31503 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
31504
31505         * socket-io.c (convert_sockopt_level_and_name): If the system
31506         doesn't define SOL_IP or SOL_TCP, get them by hand using
31507         getprotobyname() and caching the values (because this could be a
31508         slow operation).
31509         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
31510         Use the appropriate struct when the system does support it. Ie,
31511         not all systems have struct ip_mreqn so use struct ip_mreq when
31512         appropriate.
31513
31514 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
31515
31516         * reflection.c: handle finally clauses.
31517
31518 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
31519
31520         * socket-io.c: use g_snprintf() instead of snprintf.
31521
31522 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
31523
31524         * reflection.c (mono_param_get_objects): Cast second argument to
31525         mono_method_get_param_names to a const char** to silence the
31526         compiler warning.
31527
31528         * appdomain.c (mono_domain_assembly_open): Put parens around the
31529         truth statement in the for-loop.
31530
31531         * unicode.c (iconv_convert): Got rid of a compiler warning about
31532         int i being unused when the system has a new iconv.
31533         (iconv_get_length): Same.
31534
31535         * image.c (load_class_names): Cast the second argument to
31536         g_hash_table_insert() to char* to hush compiler warnings about the
31537         arg being a const.
31538         (mono_image_open): Same here.
31539
31540         * socket-io.c: Don't conditionally include sys/filio.h or
31541         sys/sockio.h here anymore since we now get them from
31542         io-layer/io-layer.h
31543         (inet_pton): If the system doesn't support inet_aton, implement
31544         using inet_addr and also #define INADDR_NONE if it isn't defined
31545         by the system.
31546
31547 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
31548
31549         * metadata.c, metadata.h: added function to get packing and size info
31550         of a typedef.
31551         * reflection.h, reflection.c: handle field RVA data. Save info about
31552         the table layout if needed. Assign typedef indexes to all the types
31553         before dumping the info about them to avoid forward reference problems.
31554
31555 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
31556
31557         * socket-io.c (convert_sockopt_level_and_name): ifdef
31558         SO_ACCEPTCONN because it is not defined on my system (old debian)
31559
31560 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
31561
31562         * opcode.c: use stddef.h to get NULL.
31563
31564 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
31565
31566         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
31567         for FIONBIO, FIONREAD and SIOCATMARK.
31568         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
31569         define INADDR_NONE and besides, inet_addr() is deprecated and
31570         should not be used. Use inet_pton() instead - it also has the
31571         added bonus that it can easily handle IPv6 addresses as well.
31572         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
31573
31574 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
31575
31576         * decimal.c: remove _MSC_VER conditional.
31577
31578 2002-02-13  Dick Porter  <dick@ximian.com>
31579
31580         * socket-io.c: 
31581         * icall.c: Internal calls for Blocking, Select, Shutdown,
31582         GetSocketOption and SetSocketOption
31583
31584 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
31585
31586         * assembly.cs: better resolver: use it instead of some kludgy
31587         code.
31588
31589 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
31590
31591         * reflection.c: the best way to speed-up the compiler is to avoid
31592         infinite loops.
31593
31594 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
31595
31596         * class.c (mono_class_vtable): changed the object layout
31597         (obj->vtable->class). 
31598         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
31599
31600 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
31601
31602         * assembly.c: look for assemblies in the assembly dir, too.
31603
31604 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
31605
31606         * class.c: fix thinko in mono_class_from_type().
31607
31608 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
31609
31610         * exception.h, exception.c: added TypeLoadException.
31611         * object.h, object.c: added mono_array_clone ().
31612         * icall.c: handle throwOnError in AssemblyGetType().
31613         Added Array.Clone().
31614         * opcode.h, opcode.c: use a single value for the opcode val.
31615         Compile fix for non-gcc compilers.
31616
31617 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
31618
31619         * opcodes.c, opcodes.h: export interesting info about opcodes.
31620
31621 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
31622
31623         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
31624         icalls. 
31625
31626         * class.c (class_compute_field_layout): set element_class for enums
31627         (mono_class_create_from_typedef): set element_class for normal classes
31628
31629         * icall.c (ves_icall_System_Enum_get_value): impl.
31630
31631         * class.c (mono_class_create_from_typedef): do not set valuetype
31632         flag for System.ValueType and System.Enum
31633
31634 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
31635
31636         * unicode.c (iconv_convert): fix big endian problem.
31637
31638 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
31639
31640         * class.c: add asserts if we are ever going to scribble over memory.
31641         * socket-io.c: not all systems have AF_IRDA defined.
31642
31643 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
31644
31645         * class.c (class_compute_field_layout): do not consider static
31646         fields to compute alignment
31647
31648 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
31649
31650         * appdomain.c (mono_appdomain_get): impl.
31651         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
31652
31653 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
31654
31655         * icall.c: ignore "file://" prefix when loading an assembly.
31656
31657 2002-01-23  Dick Porter  <dick@ximian.com>
31658
31659         * socket-io.c:
31660         * icall.c:
31661         * Makefile.am: Added socket support
31662
31663 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
31664
31665         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
31666         code back.  This should return the assemblies that are loaded by
31667         the runtime on behalf of an application domain. 
31668
31669         The current implementation is still broken, it just returns every
31670         assembly loaded, but until we get real applications domain this
31671         will do.
31672
31673 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
31674
31675         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
31676         AppDomain object.
31677
31678 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
31679
31680         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
31681         the mono_class_from_name lookup.
31682         (ves_icall_get_parameter_info): ditto.
31683         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
31684         method.
31685         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
31686
31687 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
31688
31689         * class.c: load also nested classes on class init.
31690         System.ValueType instance methods gets passed boxed
31691         values, unless methods in derived classed that get a pointer to the
31692         data.
31693         * icall.c: use better name parsing code in GetType().
31694         * image.c, image.h: add mono_image_loaded ().
31695         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
31696         * reflection.c, reflection.h: added mono_reflection_parse_type().
31697
31698 2002-01-22  Veronica De Santis <veron78@interfree.it>
31699
31700         * icall.c : Added mapping of internal calls for Manual and Auto reset events
31701         * threads.c : Added the implementation of internal calls for events
31702         * threads.h : Added prototypes of internal calls for events
31703         
31704 2002-01-21  Radek Doulik  <rodo@ximian.com>
31705
31706         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
31707
31708 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
31709
31710         * class.c (mono_class_init): set min_align to 1 (instead of 0)
31711         (mono_class_value_size): use min_align
31712
31713 2002-01-20  Dick Porter  <dick@ximian.com>
31714
31715         * threads.h:
31716         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
31717         so it compiles on w32.
31718
31719 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
31720
31721         * metadata.c (mono_type_stack_size): impl.
31722
31723         * class.c (mono_class_get_field): impl. memberref token
31724
31725 2002-01-16 Veronica De Santis <veron78@@interfree.it>
31726
31727         * icall.h : Added the internal calls mapping for CreateMutex_internal
31728                     and ReleaseMutex_internal.
31729         * threads.h : Added the prototype of mutexes internal calls.
31730         * threads.c : Added the implementations of mutexes internal calls.
31731
31732 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
31733
31734         * metaparse.h: removed unused file.
31735         * reflection.c, reflection.h: added stream_data_align () function 
31736         to align data in streams and keep stream aligned. Add support for
31737         exception support in method headers.
31738
31739 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
31740
31741         * unicode.c: make iconv_convert () return the number of bytess written
31742         in the output buffer.
31743
31744 2002-01-15  Dick Porter  <dick@ximian.com>
31745         * threads.c: Make the runtime's idea of infinite timeouts coincide
31746         with the class library's
31747
31748         Fix a particularly egregious bug in mono_thread_cleanup(). That
31749         code was so utterly bogus it must have been written on a Monday.
31750
31751 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
31752
31753         * reflection.h: add subtypes field to TypeBuilder.
31754         * reflection.c: encode constants for literal fields.
31755         Handle subtypes. Fix user string token (and add a zero byte)
31756         at the end.
31757         
31758 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
31759
31760         * class.c (mono_class_init): bug fix: assign slot numbers for
31761         abstract methods.
31762
31763 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
31764
31765         * reflection.c: don't try to output a code RVA for abstract methods.
31766         Small fixes for method header format. Output parameter info to the
31767         ParamDef table. Save method overriding info to MethodImpl table.
31768         Fix property support. Allow typedef.extends to be a type in the
31769         building assembly.
31770         * verify.c: fix off-by-one error.
31771
31772 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
31773
31774         * class.c: fix mono_class_from_mono_type () for szarray types.
31775         Remove unused cache check in mono_class_from_type_spec().
31776         * icall.c: *type_from_name () functions handle simple arrays and byref.
31777         * reflection.c: handle byref and szarray types. Handle methods without
31778         body (gets P/Invoke compilation working). Handle types and fields in
31779         get_token ().
31780         * reflection.h: add rank to MonoTypeInfo.
31781
31782 2002-01-10  Dick Porter  <dick@ximian.com>
31783
31784         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
31785         internal calls
31786
31787 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
31788
31789         * icall.c: initialize class in type_from_handle ().
31790         Loop also in parent classes for get_method ().
31791         * reflection.c: properly encode class and valuetype types.
31792         Start on encoding TypeBuilder types. Handle fieldrefs.
31793         Use correct length when registering a user string.
31794         Handle ConstructorBuilder and MonoMethod in get_token ().
31795         Make mono_type_get_object () aware of cached types.
31796         * object.c: back out change to mono_string_new ().
31797
31798 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
31799         * object.c: mono_string_new should return a NULL when the string 
31800         passed in is NULL -- not try to deference it.
31801         
31802 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
31803
31804         * icall.c: hack to make IsSubType work for TypeBuilders.
31805         * reflection.c: emit constructors before methods.
31806         Retrieve param names in mono_param_get_objects().
31807
31808 2002/01/05  Nick Drochak  <ndrochak@gol.com>
31809
31810         * Makefile.am: fix list of headers and sources so automake 1.5
31811         doesn't complain. Removed \# at end of list.
31812
31813 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
31814
31815         * reflection.c: get token for a method ref. Set return type of
31816         constructor to void.
31817         * loader.c: debug message.
31818         * class.c: typo fix.
31819
31820 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
31821
31822         * icall.c: fix array init with rank > 1. FindMembers
31823         loops in parent class as well.
31824         * image.c: do not insert nested types in name cache.
31825         * reflection.c: warning fix.
31826         * reflection.h: add override method (for interface impl).
31827
31828 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
31829
31830         * metadata.c: fix customattr decoding.
31831
31832 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
31833
31834         * rawbuffer.cs: Added native Win32 implementation, avoids using
31835         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
31836
31837 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
31838
31839         * class.c: make the low-level routines handle the cache.
31840
31841 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
31842
31843         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
31844
31845 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
31846
31847         * class.c: fix mono_array_element_size() for objects.
31848         * class.h, class.c: add properties to MonoClass and load them
31849         at init time.
31850         * icall.c: check with isinst() when assigning a value to an array
31851         instead of requiring the classes to match exactly.
31852         Implemented icall for System.Type::GetType().
31853         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
31854         enums. Handle bindingflags when looking for methods and fields.
31855         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
31856         and mono_metadata_methods_from_property().
31857         * reflection.h, reflection.c: added structures for propreties,
31858         parameters and enums. Implemented mono_property_get_object() and
31859         mono_param_get_objects().
31860
31861 2001-12-18  Dick Porter  <dick@ximian.com>
31862
31863         * file-io.c: Use mono_string_to_utf16() instead of
31864         mono_string_chars()
31865
31866         * object.c: Added mono_string_to_utf16(), which copies the non
31867         NULL-terminated MonoString into a new double-null-terminated
31868         buffer.
31869
31870 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
31871
31872         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
31873
31874 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
31875
31876         * file-io.c: raise exceptions if handle is invalid.
31877
31878 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
31879
31880         * assembly.c: yet another check for mscorlib.
31881         * class.c, class.h: load nesting info for classes.
31882         * icall.c: many new functions to support the Reflection classes.
31883         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
31884         * reflection.h, reflection.c: mono_image_create_token(),
31885         mono_assembly_get_object(), mono_type_get_object(),
31886         mono_method_get_object(), mono_field_get_object(): methods to return
31887         objects that parallel the C representation of assemblies, types,
31888         methods, fields.
31889
31890 2001-12-11  Dick Porter  <dick@ximian.com>
31891
31892         * icall.c:
31893         * file-io.c: Internal calls for file IO.
31894
31895 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
31896
31897         * tabledefs.h: missing FileAttributes.
31898         * verify.h, verify.c: use is_valid_string () to simplify and check for
31899         valid strings more correctly. Fix warnings and speeling.
31900         Check more tables: Filed, File, ModuleRef, StandAloneSig.
31901         Check code: branches, maxstack, method calls.
31902
31903 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
31904
31905         * object.c (mono_object_allocate): removed static, so that the jit
31906         can allocate value types.
31907
31908         * icall.c (ves_icall_System_DateTime_GetNow): impl.
31909
31910 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
31911
31912         * class.c: init enum types right away and register the
31913         token->MonoClass map in mono_class_create_from_typedef ().
31914         * verify.h, verify.c: first cut of the verifier.
31915         * pedump.c: add --verify switch to verify metadata tables.
31916         * tabledefs.h: add some missing enums.
31917
31918 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
31919
31920         * class.c (mono_install_runtime_class_init): impl.
31921         (mono_class_init): renamed mono_class_metadata_init to
31922         mono_class_init, also removed the metadata_inited flag
31923
31924         * object.c (mono_object_isinst): use faster algorithm
31925
31926 2001-11-30  Radek Doulik  <rodo@ximian.com>
31927
31928         * mono-endian.h: reverted last change
31929         added function prototypes
31930
31931         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
31932         add mono-endian.c back
31933
31934         * mono-endian.c: returned back, as Paolo pointed out, it's needed
31935         for unaligned access, I've mistaked it with endianess. I am
31936         sorry.
31937         (mono_read16): fix reverted endianess
31938         (mono_read64): ditto
31939         (mono_read32): ditto
31940
31941 2001-11-30  Dick Porter  <dick@ximian.com>
31942
31943         * exception.c: Implement mono_exception_from_name()
31944
31945 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
31946
31947         * metadata.h, metadata.c: remove params_size and locals_size and their
31948         calculation from the metadata code: they are only usefult to the
31949         interp.
31950
31951 2001-11-29  Radek Doulik  <rodo@ximian.com>
31952
31953         * object.c (mono_ldstr): swap bytes here, it's probably not the
31954         best place, but works for me now, I'll redo it once I know mono
31955         better, also note that I add PROT_WRITE and don't reset back, also
31956         note that it's only affects big endians, so x86 should be OK
31957
31958         * mono-endian.h (read16): use just glib macros for both endians
31959
31960         * mono-endian.c: removed as glib macros are used in in
31961         mono-endian.h so we don't need to care about endianess for read
31962         macros as glib does that for us already
31963
31964 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
31965
31966         * class.h, class.h: take minimum alignment into consideration so
31967         that the fields of a class remain aligned also when in an array.
31968
31969 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
31970
31971         * loader.h, loader.c: add mono_method_get_param_names().
31972         * class.c: 0-init class fields.
31973
31974 2001-11-26  Dick Porter  <dick@ximian.com>
31975
31976         * icall.c:
31977         * threads-types.h:
31978         * threads.c: New file that handles System.Threading on all platforms
31979
31980         * object.c: 
31981         * object.h: Remove the synchronisation struct from MonoObject,
31982         replace it with a pointer that gets initialised on demand
31983
31984         * Makefile.am: Replace all the system-specific threading code with
31985         a single file that uses the new wrapper library
31986
31987 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
31988
31989         * class.c, class.h: add mono_install_trampoline() so that the runtime
31990         can register a function to create a trampoline: removes the ugly
31991         requirement that a runtime needed to export arch_create_jit_trampoline.
31992         * object.h, object.c: added mono_install_handler() so that the runtime
31993         can install an handler for exceptions generated in C code (with
31994         mono_raise_exception()). Added C struct for System.Delegate.
31995         * pedump.c: removed arch_create_jit_trampoline.
31996         * reflection.c: some cleanups to allow registering user strings and
31997         later getting a token for methodrefs and fieldrefs before the assembly
31998         is built.
31999         * row-indexes.h: updates and fixes from the new ECMA specs.
32000
32001 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
32002
32003         * class.h, class.c: add enum_basetype field to MonoClass.
32004         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
32005         to get index in the constant table reated to a field, param or
32006         property.
32007         * reflection.h, reflection.c: handle constructors. Set public-key and
32008         version number of the built assembly to 0.
32009         * row-indexes.h: update from new ECMA spec.
32010
32011 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
32012
32013         * class.h, class.c: add a max_interface_id to MonoClass.
32014         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
32015         since it's used to do that. Added mono_type_type_from_obj().
32016         Make GetType() return NULL instead of segfaulting if the type was not
32017         found. Handle simple arrays in assQualifiedName.
32018         * object.h: add a struct to represent an Exception.
32019         * reflection.c: output call convention in method signature.
32020         Add code to support P/Invoke methods and fixed offsets for fields.
32021
32022 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
32023
32024         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
32025         the value.
32026         * icall.c: use mono_array_addr instead of array->vector: fixes the
32027         reflection image writing.
32028         * reflection.c: init call convention byte to 0 in method signature.
32029         Encode the property signature. Don't output property-related methods
32030         twice. Really process the properties for a type (don't cast a field to
32031         a property, my mom always told me that).
32032         Fix 64 bit issues in pointer alignment in a different and more
32033         readable way.
32034
32035 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
32036
32037         * loader.h: Removed type class from MonoDefaults, added monotype
32038
32039         * loader.c: Loaded MonoType, removed loading of Type
32040
32041         * icall.c (my_mono_new_object): Now returns a System.MonoType,
32042         and fills in System.Type._impl with a RuntimeTypeHandle rather
32043         than the actual MonoClass *
32044
32045         (ves_icall_type_from_handle): change from type_class to
32046         monotype_class
32047
32048         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
32049         implemented
32050
32051         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
32052         implemented
32053
32054         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
32055
32056         (ves_icall_System_Reflection_Assembly_GetType): implemented
32057
32058         (ves_icall_System_MonoType_assQualifiedName): implemented
32059
32060         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
32061
32062 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
32063
32064         * assembly.c (mono_assembly_open): Implement a cache for the
32065         assemblies. 
32066
32067         (mono_assembly_close): only destroy the assembly when the last
32068         reference is gone.
32069         
32070 2001-11-09  Dick Porter  <dick@ximian.com>
32071
32072         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
32073
32074 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
32075
32076         * class.c (mono_class_metadata_init): bug fix: compute the right slot
32077
32078 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
32079
32080         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
32081         from Martin Weindel.
32082         * object.h: add mono_string_chars ().
32083
32084 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
32085
32086         * reflection.c (build_compressed_metadata): Eliminates warnings
32087         and uses 64-bit clean code.
32088
32089         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
32090         (mono_type_equal): Change signature to eliminate warnings.
32091
32092 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
32093
32094         * icall.c, loader.c: remove the internalcall array constructors.
32095         Changes to match the new MonoArray structure.
32096         * object.h, object.c: an array object doesn't allocate an extra
32097         vector. Add mono_array_new_full () to create jagged arrays easily.
32098
32099 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
32100
32101         * metadata.h, metadata.c: add mono_metadata_field_info () to
32102         retreive all the info about a field from vairous tables.
32103         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
32104         * class.h, class.c: augment MonoClassField with more info.
32105         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
32106         policy and load a field's RVA if needed.
32107
32108 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
32109
32110         * class.c (mono_class_metadata_init): create a trampoline for all
32111         virtual functions instead of actually compiling them.
32112
32113 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
32114
32115         * class.h, class.c: include name in MonoClassField.
32116         * class.c: fix fundamental type of System.Object and System.String.
32117         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
32118         tokens in ldtoken.
32119         * icall.c: remove internalcalls for the Reflection stuff that is now
32120         done in C# code.
32121         * loader.c: mono_field_from_memberref () implementation.
32122         * mono-endian.c: thinko (s/struct/union/g).
32123         * object.c, object.h: make the mono_string_* prototypes actually use
32124         MonoString instead of MonoObject.
32125         * reflection.c, reflection.h: updates for changes in the reflection
32126         code in corlib: we use C structures that map to the actual C# classes.
32127         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
32128         fat method header if needed and use the info from the ILGenerator for
32129         methods. Handle fields in types. Misc fixes.
32130
32131 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
32132
32133         * class.c (mono_class_metadata_init): bug fix: always allocate
32134         space for static class data
32135
32136 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
32137
32138         * class.c (mono_compute_relative_numbering): use relative
32139         numbering to support fast runtime type checks.
32140
32141 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
32142
32143         * class.c (mono_class_create_from_typeref): added debugging output
32144         to print class name when MonoDummy is returned instead of real class
32145
32146 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
32147
32148         * class.c (mono_class_metadata_init): interface offset table now
32149         contains pointers into the vtable - this is more efficient for the jit
32150
32151 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
32152
32153         * class.c (mono_class_metadata_init): use a temporary vtable (the
32154         old algorithm only worked for the interpreter, but not for the jit)
32155
32156 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
32157
32158         * loader.c (method_from_memberref): use mono_class_get to get the
32159         class of an array instead of using System.Array directly.
32160         (mono_get_method): also add MEMBERREF methods to the method cache
32161         which usefull for arrays.
32162
32163 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
32164
32165         * pedump.c (arch_compile_method): added to compute vtable entry
32166
32167         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
32168         number of interfaces.
32169         
32170         * class.h: merged MonoArrayClass into MonoClass
32171
32172         * class.c (mono_class_create_from_typedef): compute the vtable size and
32173         allocate space to include the vtable inside MonoClass
32174         (mono_class_metadata_init): initialize the vtable
32175
32176 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
32177
32178         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
32179         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
32180         * image.c: endian fixes by Laurent Rioux.
32181         * object.h, object.c: rename MonoStringObject to MonoString and
32182         MonoArrayObject to MonoArray. Change some function names to conform to
32183         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
32184         guint16* as first argument, so don't use char*.
32185         Provide macros to do the interesting things on arrays in a portable way.
32186         * threads-pthread.c: updates for the API changes and #include <sched.h>
32187         (required for sched_yield()).
32188         * icall.c: updates for the API changes above.
32189         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
32190         platforms that need them.
32191
32192 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
32193
32194         * class.c: set the correct type for all the fundamental
32195         type when loading the class.
32196
32197 2001-10-05  Dick Porter  <dick@ximian.com>
32198
32199         * threads-pthread.c (pthread_mutex_timedlock): Simple
32200         compatibility version for C libraries that lack this call.
32201
32202 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
32203
32204         * class.c: MonoTypes stored in MonoClass are stored as
32205         fundamental MonoTypes when the class represents a
32206         fundamental type (System.Int32, ...).
32207         The TypeHandle return by ldtoken is a MonoType*.
32208         * icall.c: ves_icall_get_data_chunk () write out all the
32209         PE/COFF stuff. Implement ves_icall_define_method (),
32210         ves_icall_set_method_body (), ves_icall_type_from_handle ().
32211         * image.c: properly skip unknown streams.
32212         * loader.h, loader.c: add type_class to mono_defaults.
32213         * metadata.c, metadata.h: export compute_size () as
32214         mono_metadata_compute_size () with a better interface.
32215         Typo and C&P fixes.
32216         * pedump.c: don't try to print the entry point RVA if there is no entry point.
32217         * reflection.c, reflection.h: many cleanups, fixes, output method
32218         signatures and headers, typedef and typeref info, compress the metadata
32219         tables, output all the heap streams, cli header etc.
32220         * row-indexes.h: typo fixes.
32221
32222 2001-10-04  Dick Porter  <dick@ximian.com>
32223
32224         * object.h: Add a synchronisation mutex struct to MonoObject
32225
32226         * object.c (mono_new_object): Initialise the object
32227         synchronisation mutexes
32228
32229         * icall.c: System.Threading.Monitor internal calls
32230         
32231         * threads-pthread.h:
32232         * threads-pthread.c: System.Threading.Monitor internal calls
32233
32234         * threads-types.h: New file, includes the system-specific thread
32235         structures
32236         
32237         * threads-pthread-types.h:
32238         * threads-pthread-types.c: New files, handle pthread-specific
32239         synchronisation types
32240
32241         * threads-dummy-types.h: 
32242         * threads-dummy-types.c: New files of dummy support for
32243         thread-specific types
32244
32245         * metadata.c:
32246         * image.c:
32247         * pedump.c: include mono-endian.h not endian.h
32248         
32249         * Makefile.am: More threads files.
32250         Name mono-endian.h not endian.h
32251
32252 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
32253
32254         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
32255         stuff and implement a few more bits.
32256         * icall.c: a field needs to be dereferenced twice. Do not use the same
32257         name for two variables in the same scope.
32258         * image.c, image.h: cleanups.
32259
32260 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
32261
32262         * class.c (mono_class_metadata_init): bug fix: compute the right size
32263
32264 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
32265
32266         * icall.c: implemented some of the Reflection internalcalls.
32267         * image.c, image.h: start writing out the PE/COFF image.
32268         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
32269         that does the reverse than decode_blob_size ().
32270         * object.c: use mono_metadata_encode_value (). Move here
32271         temporary implementation of mono_string_to_utf8 ().
32272         * rawbuffer.c: make malloc_map static.
32273
32274 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
32275
32276         * metadata.c: fix type comparison for arrays.
32277         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
32278         Added a couple of new classes to monodefaults.
32279         * icall.c: added a couple of Reflection-related internalcalls.
32280         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
32281         Added a byval_arg MonoType to MonoClass.
32282
32283 2001-09-28  Dick Porter  <dick@ximian.com>
32284
32285         * icall.c:
32286         * threads-pthread.h: 
32287         * threads-pthread.c: Implemented internal calls for
32288         LocalDataStoreSlot operations.  Applied mutexes around all shared
32289         data.  Reworked the thread creation and Start() operations to
32290         avoid a race condition.
32291         
32292         * threads-dummy.h:
32293         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
32294
32295 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
32296
32297         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
32298
32299 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
32300
32301         * class.c, loader.c: warn and return NULL instead of erroring out.
32302         * icall.c: added System.AppDomain::getCurDomain().
32303         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
32304
32305 2001-09-25  Dick Porter  <dick@ximian.com>
32306
32307         * threads-pthread.h:
32308         * threads-pthread.c: Implemented timed thread joining and added
32309         System.Threading.Thread::Join_internal internal call
32310
32311         * icall.c: Added System.Threading.Thread::Join_internal internal call
32312
32313         * threads-dummy.h:
32314         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
32315
32316 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
32317
32318         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
32319         mono_string_intern () to implement the semantics of the ldstr opcode
32320         and the interning of System.Strings.
32321         * icall.c: provide hooks to make String::IsIntern and String::Intern
32322         internalcalls.
32323
32324 2001-09-23  Dick Porter  <dick@ximian.com>
32325
32326         * threads-dummy.c: 
32327         * threads-dummy.h: New files of dummy threading routines
32328
32329         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
32330         support code based on system specifics
32331
32332         Rename PTHREAD_LIBS to THREAD_LIBS
32333         
32334 2001-09-23  Dick Porter  <dick@ximian.com>
32335
32336         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
32337         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
32338         internal calls.
32339         (mono_thread_init): Set up a Thread object instance to return when
32340         the main thread calls Thread.CurrentThread
32341         (mono_thread_cleanup): Wait for all subthreads to exit
32342
32343         * icall.c: New internal calls for System.Threading.Thread::Sleep
32344         (including Schedule) and CurrentThread
32345
32346         * threads.h: New file, to insulate thread-specific stuff from the
32347         rest of the code
32348
32349 2001-09-21  Dick Porter  <dick@ximian.com>
32350
32351         * threads-pthread.h: 
32352         * threads-pthread.c: New file, for handling pthreads-style
32353         threading support.  Start() now starts a new thread and executes
32354         the ThreadStart delegate instance.
32355
32356         * icall.c: Added the internalcall for
32357         System.Threading.Thread::Start_internal
32358
32359         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
32360
32361 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
32362
32363         * loader.c: work around the different signatures for delegates
32364         constructors csc generates in compiled code vs the ones compiled in mscorlib.
32365
32366 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
32367
32368         * class.h, class.c: add mono_class_get_field_from_name ().
32369         * *: Fix C comments and other ANSI C issues.
32370
32371 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
32372
32373         * endian.h, assembly.c: fix some endianness issues.
32374
32375 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
32376
32377         * loader.h, load.c: add delegate_class to mono_defaults.
32378         Handle runtime provided methods in mono_get_method ().
32379
32380 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
32381
32382         * loader.c (mono_get_method): use pinvoke for internal call
32383
32384         * icall.c: use pinvoke for internal call
32385
32386         * loader.c (method_from_memberref): set the method name
32387
32388 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
32389
32390         * metadata.c: help the compiler generate better code for
32391         mono_class_from_mono_type ().
32392
32393 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
32394
32395         * class.c (mono_class_metadata_init): delayed computing of the
32396         class size to mono_class_metadata_init ()
32397
32398 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
32399
32400         * class.c, class.h: add an interfaces member to MonoClass.
32401         * image.c, image.h: add assembly_name field to MonoImage
32402         from the assembly table.
32403         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
32404
32405 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
32406
32407         * class.c: Handle Array in mono_class_from_mono_type ().
32408         * metadata.c, pedump.c: some endian fixes.
32409
32410 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
32411
32412         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
32413         * metadata.c: fix small problem introduced with the latest commit.
32414
32415 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
32416
32417         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
32418         We don't need a MonoMetadata pointer anymore to compare signatures in
32419         mono_metadata_signature_equal (), update callers.
32420         Reduced memory usage an number of allocations for MonoMethodHeader and
32421         MonoMethodSignature.
32422
32423 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
32424
32425         * metadata.c: added compare for szarray.
32426
32427 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
32428
32429         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
32430         and add a couple more types to it and mono_defaults. Give an hint on
32431         classes that need implementing in our corlib and are referenced
32432         in mscorlib.
32433
32434 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
32435
32436         * class.h, class.c: keep track if a class is also an Enum.
32437         * loader.c: Implement a couple more types for use in libffi
32438         marshalling. Gives better diagnostics when failing to dlopen
32439         a library. Set method->klass for P/Invoke methods, too.
32440
32441 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
32442
32443         * class.c, class.h: add a MonoType this_arg to MonoClass that
32444         represents a pointer to an object of the class' type that
32445         can be used by the interpreter and later the type cache.
32446         Add best guess alignment info for valuetype objects.
32447
32448 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
32449
32450         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
32451         into MonoType: one less level of indirection and allocation and
32452         simplifies quite a bit of code. Added cache for MonoTypes that are
32453         used frequently, so that we don't need to allocate them all the time.
32454
32455 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
32456
32457         * class.c (mono_class_create_from_typedef): System.Enum is also a
32458         value type, although it does not derive from System.ValueType
32459         (maybe a bug in the ms compiler?)
32460
32461         * metadata.c (mono_type_size): return the right size for value types
32462
32463         * loader.c (mono_get_method): only initialize method header if not abstract
32464
32465         * class.c (mono_class_from_mono_type): use mono_default values. 
32466
32467 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
32468
32469         * *: use MonoClass pointers instead of <type_tokens>
32470         
32471         * class.h: new flag: metadata_inited.
32472
32473         * class.c (mono_class_metadata_init): impl.
32474         (mono_class_instance_size): impl.
32475         (mono_class_data_size): impl.
32476
32477 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
32478
32479         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
32480         MonoClass now has the name and name_space fields. 
32481         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
32482         mono_get_method () takes and optional MonoClass as argument.
32483         Removed mono_typedef_from_name() and added mono_class_token_from_name()
32484         instead that takes advantage of a map from class names to typedef
32485         tokens in MonoImage.
32486
32487 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
32488
32489         * metadata.c: zero is not a valid alignment boundary.
32490         Merge MONO_TYPE_VOID in default decoding code.
32491
32492 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
32493
32494         * image.h: merged MonoMetadata into MonoImage
32495
32496         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
32497         identify the type of elements.
32498
32499 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
32500
32501         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
32502         * cil-coff.h: split MonoMSDOSHeader and add size info.
32503         * image.c: add some consistency checks.
32504         * metadata.c: fix row size computation: one programmer
32505         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
32506         add explanation for the locator routine.
32507         Fix decoding of size in method header.
32508         
32509 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
32510
32511         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
32512         (g_concat_dir_and_file): Bring g_concat_dir_and_file
32513         function from gnome-libs.  This uses the right path separator
32514         based on the OS, and also works around a bug in some systems where
32515         a double slash is not allowed. 
32516         (default_assembly_name_resolver): Use g_concat_dir_and_file
32517         (mono_assembly_open): ditto.
32518
32519 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
32520
32521         * metadata.c (mono_metadata_signature_equal): impl.
32522
32523         * *: void is now a realy MonoType (instead of using NULL)
32524         
32525         * metadata.c (do_mono_metadata_parse_type): use
32526         mono_metadata_parse_type to parse void value.
32527
32528 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
32529
32530         * metadata.c, metadata.h: in the signature and method header store
32531         only the space required for holding the loca vars and incoming arguments.
32532
32533 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
32534
32535         * metadata.c (do_mono_metadata_parse_type): treat void like any
32536         other type (instead of assigning NULL);
32537
32538 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
32539
32540         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
32541
32542 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
32543
32544         * image.c (do_mono_image_open): added a cache for arrays.
32545
32546 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
32547
32548         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
32549         decode a single column from a row in a metadata table and changes
32550         to take advantage of it in the typedef locator (gives a nice speed up).
32551         Store offset info for function params.
32552
32553 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
32554
32555         * image.h (MONO_IMAGE_IS_CORLIB): removed 
32556
32557 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
32558
32559         * assembly.c: how could mono_assembly_close () had ever worked?
32560         * metadata.c, metadata.h: provide offset info for local vars.
32561         Implement mono_type_size () to take care of alignment as well
32562         as size (it was mono_field_type_size in cli/class.c before).
32563
32564 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
32565
32566         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
32567
32568         * assembly.h (CORLIB_NAME): set to corlib.dll
32569
32570         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
32571
32572 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
32573
32574         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
32575         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
32576         tokentype.h: massive namespace cleanup.
32577
32578 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
32579
32580         * metadata.h, metadata.c: decode exception clauses when parsing method header.
32581
32582 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
32583
32584         * metadata.c (mono_metadata_free_type): added check for type !=
32585         NULL (void) before calling mono_metadata_free_type()
32586
32587 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
32588
32589         * metadata.h, row_indexes.h: added header with enumerations to use
32590         to index in the columns from tables in metadata and to decode coded
32591         tokens: we should start using this instead of embedding magic numbers
32592         all over the code.
32593
32594 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
32595
32596         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
32597         Move metadata_t info from cli_image_info_t to MonoImage, where
32598         it's easily accessible. Changed all the uses accordingly.
32599         Added the method and class caches to MonoImage.
32600         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
32601         and mono_metadata_decode_value () signature to be more consistent
32602         with the other parse functions (and simplify code). Taken advantage
32603         of zero-length array allocation with GCC. Removed reduntant (and
32604         wrong) MonoFieldType struct and use MonoParam instead. Changed
32605         mono_metadata_parse_field_type () to use common code for parsing.
32606         Added mono_metadata_typedef_from_field () and
32607         mono_metadata_typedef_from_method () to lookup a typedef index from a
32608         field or method token.
32609         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
32610
32611 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
32612
32613         * metadata.c (mono_metadata_parse_field_type): Implement. 
32614         (do_mono_metadata_parse_type): Split engine from
32615         mono_metadata_parse_type, so that we can create smaller structures
32616         for things that just have one pointer to the MonoType (look at
32617         the MonoFieldType)
32618
32619 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
32620
32621         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
32622         as Jan Gray found out, it is incorrect. 
32623
32624 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
32625
32626         * assembly.c: Implement asssembly loading.  This loads an image
32627         and loads all the referenced assemblies.  Come to think of it, we
32628         could always do lazy loading of the assemblies. 
32629
32630         * image.c (mono_image_open): Keep loaded images in a hashtable.
32631
32632         * image.h (MonoImage): Add reference count.
32633
32634 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
32635
32636         * assembly.c (mono_assembly_open): Keep track of the file name in
32637         case the assembly has no ASSEMBLY table.
32638
32639         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
32640         from get.c here.
32641
32642 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
32643
32644         * metadata.c, metadata.h: decode local vars in method header
32645         parse function. Change callers accordingly.
32646
32647 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
32648
32649         * metadata.h, cil-coff.h: protect against multiple inclusion.
32650         Added some new structures to hold information decoded from metadata:
32651         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
32652         and relevant decoding/free functions.
32653         * metadata.c: implement decoding functions. Add warning for out of bounds
32654         index in mono_metadata_locate(). Implement mono_get_method () to retreive
32655         all the info about a method signature and invocation. Remove check on
32656         uninitialized local var in parse_mh() and fix memory leak.
32657
32658 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
32659
32660         * metadata.h: More macros.
32661
32662         * tokentype.h: New file.
32663
32664 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
32665
32666         * assembly.c: added a consistency check and initialize
32667         some structures with g_new0().
32668         * metadata.c: fixed a couple more bugs in table size computation
32669         and add other checks for out-of bound access to metadata.
32670
32671 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
32672
32673         * metatada.c: fix bugs computing table sizes. Spew a
32674         warning when index in string heap is out of bounds.
32675
32676 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
32677
32678         * metadata.h: Add a couple of macros to manipulate tokens. 
32679
32680 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
32681
32682         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
32683         cli_section_tables).
32684
32685 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
32686
32687         * metadata.c (mono_metadata_user_string): New function, provides
32688         access to the UserString heap. 
32689
32690 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
32691
32692         * metadata.c: Add inline documentation.
32693
32694 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
32695
32696         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
32697         files. 
32698
32699 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
32700
32701         * typeattr.h: New file, TypeAttribute flags. 
32702
32703 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
32704
32705         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
32706         mono_assembly_ensure_section): Section loading code.
32707         (load_section_tables): Load the sections.
32708
32709         * mono/metadata/metadata.c (mono_metadata_locate_token,
32710         mono_metadata_locate): Functions to locate the information
32711         definition given a token or a table and an index.
32712         (mono_metadata_compute_table_bases): New.
32713         (compute_size): New function to compute the sizes of the various
32714         tables.
32715
32716         * mono/metadata/metadata.h: Finish listing the different index
32717         types. 
32718
32719         * mono/metadata/pedump.c: Improve to dump new information.
32720
32721 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
32722
32723         * mono/metadata/metadata.c: Entered all the tables matching
32724         Beta2. 
32725
32726         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
32727
32728
32729
32730