Merge pull request #2775 from lambdageek/dev/monoerror-reflection-icalls
authormonojenkins <jo.shields+jenkins@xamarin.com>
Tue, 22 Mar 2016 22:35:16 +0000 (22:35 +0000)
committermonojenkins <jo.shields+jenkins@xamarin.com>
Tue, 22 Mar 2016 22:35:16 +0000 (22:35 +0000)
commitc116b85fb973bec80ff4a0608a4be101576f79b6
tree9e6dd7283ccc80e4189c6ad1f31347041aa3284d
parentf6de55f55857e60684ca1b85445dfb80309b0d28
parentf52e4e1a9d21860d8f5b01aa4dbf656e69643ca1
Merge pull request #2775 from lambdageek/dev/monoerror-reflection-icalls

[SRE] MonoError-ize some icalls

* Cleanup some memory that would leak on failure; improve a few error messages
* Add MonoError to `mono_reflection_call_is_assignable_to` and `fieldbuilder_to_mono_class_field`.
* Update several SRE icalls to follow the pattern:
  ```c
    void
    the_icall (args... )
    {
       MonoError error;
       (void) the_real_work_function (args..., &error);
       mono_error_set_pending_exception (&error);
    }

    static gboolean
    the_real_work_function (args..., MonoError *error)
    {
       ... /* return TRUE on success, FALSE and set error on failure */ ...
    }
  ```
  Do this to:
        1. `mono_reflection_register_with_runtime`
        2. `mono_reflection_setup_internal_class`
        3. `mono_reflection_create_internal_class`
        4. `mono_reflection_generic_class_initialize`
        5. `mono_reflection_event_builder_get_event_info`
        6. `mono_reflection_initialize_generic_parameter`
        7. `mono_reflection_create_dynamic_method`
mono/metadata/reflection.c