# New Ticket Created by  Reini Urban 
# Please include the string:  [perl #58176]
# in the subject line of all future correspondence about this issue. 
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=58176 >


---
osname= cygwin
osvers= 1.5.25(0.15642)
arch=   cygwin-thread-multi-64int
cc=     gcc
---
Flags:
         category=languages
         severity=high
         ack=no
---
make dotnet work with the new exceptions.
I'm not sure how to return the jump_point correctly, but it looks fine.

---
Summary of my parrot 0.7.0 (r0) configuration:
   configdate='Wed Aug 20 18:34:46 2008 GMT'
   Platform:
     osname=cygwin, archname=cygwin-thread-multi-64int
     jitcapable=1, jitarchname=i386-cygwin,
     jitosname=CYGWIN, jitcpuarch=i386
     execcapable=1
     perl=/usr/bin/perl.exe
   Compiler:
     cc='gcc', ccflags='-U__STRICT_ANSI__  -pipe -I/usr/local/include 
-DHASATTRIBUTE_CONST  -DHASATTRIBUTE_DEPRECATED  -DHASATTRIBUTE_MALLOC 
-DHASATTRIBUTE_NONNULL  -DHASATTRIBUTE_NORETURN  -DHASATTRIBUTE_PURE 
-DHASATTRIBUTE_UNUSED  -DHASATTRIBUTE_WARN_UNUSED_RESULT 
-falign-functions=16 -maccumulate-outgoing-args -W -Wall 
-Waggregate-return -Wcast-align -Wcast-qual -Wchar-subscripts -Wcomment 
-Wdisabled-optimization -Wendif-labels -Wextra -Wformat 
-Wformat-extra-args -Wformat-nonliteral -Wformat-security -Wformat-y2k 
-Wimplicit -Wimport -Winit-self -Winline -Winvalid-pch -Wmissing-braces 
-Wno-missing-format-attribute -Wpacked -Wparentheses -Wpointer-arith 
-Wreturn-type -Wsequence-point -Wno-shadow -Wsign-compare 
-Wstrict-aliasing -Wstrict-aliasing=2 -Wswitch -Wswitch-default 
-Wtrigraphs -Wundef -Wunknown-pragmas -Wno-unused -Wwrite-strings 
-Wbad-function-cast -Wdeclaration-after-statement 
-Wimplicit-function-declaration -Wimplicit-int -Wmain 
-Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wnonnull 
-DDISABLE_GC_DEBUG=1 -DNDEBUG -O3 -DHAS_GETTEXT',
   Linker and Libraries:
     ld='gcc', ldflags=' -Wl,--enable-auto-import 
-Wl,--export-all-symbols -Wl,--stack,8388608 -Wl,--enable-auto-image-base ',
     cc_ldflags='',
     libs='-L/usr/local/lib -lcrypt -lgmp -lreadline -lpcre -lglut32 
-lglu32 -lopengl32 -lcrypto -lintl'
   Dynamic Linking:
     share_ext='.dll', ld_share_flags='-shared',
     load_ext='.dll', ld_load_flags='-shared'
   Types:
     iv=long, intvalsize=4, intsize=4, opcode_t=long, opcode_t_size=4,
     ptrsize=4, ptr_alignment=1 byteorder=1234,
     nv=double, numvalsize=8, doublesize=8
Locally applied patches:
    [perl #39742] [BUG]   installed conflict
    [perl #51944] [DOCS]  Cygwin Readme
    [perl #56544] [PATCH] install_files.pl
    [perl #56998] [PATCH] rename cygwin dll to cygparrot$MAJ_$MIN_$P.dll
    [perl #57006] [PATCH] add cygwin opengl config quirks
    [perl #56554] [TODO]  make install -C languages
    [perl #58034] [TODO]  config_args
    [perl #56996] [TODO]  FHS runtime paths
---
Environment:
             CYGWIN =server
             HOME =/home/rurban
             LANG  (unset)
             LANGUAGE  (unset)
             LD_LIBRARY_PATH  (unset)
             LOGDIR  (unset)
             PATH
=~/bin:/usr/bin:/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/cygdrive/c/WINDOWS/system32:/cygdrive/c/WINDOWS:/usr/bin:/cygdrive/c/WINDOWS/System32/Wbem:/cygdrive/c/Programme/ATI

Technologies/ATI.ACE/Core-Static:/usr/local/bin:/usr/lib/gstreamer-0.8:/usr/lib/lapack
             SHELL  (unset)

Index: parrot-svn/languages/dotnet/ops/dotnet.ops
===================================================================
--- parrot-svn.orig/languages/dotnet/ops/dotnet.ops
+++ parrot-svn/languages/dotnet/ops/dotnet.ops
@@ -88,7 +88,10 @@ static opcode_t* dotnet_OverflowExceptio
     PMC *ex_pmc = pmc_new(interp, enum_class_Exception);
     VTABLE_set_string_native(interp, ex_pmc,
         string_from_literal(interp, "System.OverflowException"));
-    return (opcode_t *)throw_exception(interp, ex_pmc, ret);
+    VTABLE_set_integer_keyed_str(interp, ex_pmc,
+        "severity", EXCEPT_error);
+    Parrot_ex_throw_from_c(interp, ex_pmc);
+    return ret;
 }
 
 
Index: parrot-svn/languages/dotnet/pmc/dotnetassembly.pmc
===================================================================
--- parrot-svn.orig/languages/dotnet/pmc/dotnetassembly.pmc
+++ parrot-svn/languages/dotnet/pmc/dotnetassembly.pmc
@@ -1848,7 +1848,7 @@ pmclass DotNetAssembly dynpmc group dotn
         free(filename);
 
         if (!in)
-            Parrot_ex_throw_from_c_args(INTERP, NULL, E_IOError,
+            Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_PIO_ERROR,
                 "Unable to open file %s", filename);
 
         /* Attempt to load the PE parts of the file; this locates the CLI
@@ -2184,12 +2184,9 @@ pmclass DotNetAssembly dynpmc group dotn
 
         /* If we don't have an assembly or nothing is loaded, throw an
            exception and leave. */
-        if (ass == NULL || ass->loaded == 0)
-        {
-            EXCEPTION_INVALID_OPERATION(INTERP, NULL, INVALID_OPERATION,
+        if (!ass || !ass->loaded)
+            Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_INVALID_OPERATION,
                "No .NET CLI file loaded");
-            RETURN(PMC *PMCNULL);
-        }
         else {
             PMC *result = VTABLE_get_pmc_keyed_int(INTERP, ass->methods,
                 ass->entry_point);

Reply via email to