lauromoura pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=a0dd0b616a9b02336de442d522742188786bd98d

commit a0dd0b616a9b02336de442d522742188786bd98d
Author: Lauro Moura <[email protected]>
Date:   Fri Nov 15 00:07:11 2019 -0300

    csharp: Suppress CA2000 in native wrappers.
    
    Summary:
    These methods may instantiate `IDisposable` classes like `Array`,
    `Iterator` to pass to user-overriden C# methods. As we can't
    guarantee the user stored the object or not, we can't call Dispose
    directly on them.
    
    Ref T8423
    
    Depends on D10670
    
    Reviewers: brunobelo, felipealmeida, YOhoho
    
    Reviewed By: brunobelo
    
    Subscribers: cedric, #reviewers, #committers
    
    Tags: #efl
    
    Maniphest Tasks: T8423
    
    Differential Revision: https://phab.enlightenment.org/D10671
---
 src/bin/eolian_mono/eolian/mono/function_definition.hh | 3 ++-
 src/bin/eolian_mono/eolian_mono.cc                     | 3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/bin/eolian_mono/eolian/mono/function_definition.hh 
b/src/bin/eolian_mono/eolian/mono/function_definition.hh
index 51bb17c3a1..cded973d23 100644
--- a/src/bin/eolian_mono/eolian/mono/function_definition.hh
+++ b/src/bin/eolian_mono/eolian/mono/function_definition.hh
@@ -123,7 +123,8 @@ struct native_function_definition_generator
       self = "";
 
     if(!as_generator
-       (indent << "private static "
+       (indent << "[SuppressMessage(\"Microsoft.Reliability\", 
\"CA2000:DisposeObjectsBeforeLosingScope\", Justification = \"The instantiated 
objects can be stored in the called Managed API method.\")]\n"
+        << indent << "private static "
         << eolian_mono::marshall_type(true) << " "
         << string
         << "(System.IntPtr obj, System.IntPtr pd"
diff --git a/src/bin/eolian_mono/eolian_mono.cc 
b/src/bin/eolian_mono/eolian_mono.cc
index fd40e9982d..62eed11b2a 100644
--- a/src/bin/eolian_mono/eolian_mono.cc
+++ b/src/bin/eolian_mono/eolian_mono.cc
@@ -171,7 +171,8 @@ run(options_type const& opts)
                      "using System.Collections.Generic;\n"
                      "using System.Linq;\n"
                      "using System.Threading;\n"
-                     "using System.ComponentModel;\n")
+                     "using System.ComponentModel;\n"
+                     "using System.Diagnostics.CodeAnalysis;\n")
      .generate(iterator, efl::eolian::grammar::attributes::unused, 
efl::eolian::grammar::context_null()))
      {
         throw std::runtime_error("Failed to generate file preamble");

-- 


Reply via email to