[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[dotgnu-pnet-commits] pnet ./ChangeLog engine/jitc_obj.c
From: |
Klaus Treichel |
Subject: |
[dotgnu-pnet-commits] pnet ./ChangeLog engine/jitc_obj.c |
Date: |
Sat, 25 Mar 2006 07:06:54 +0000 |
CVSROOT: /cvsroot/dotgnu-pnet
Module name: pnet
Branch:
Changes by: Klaus Treichel <address@hidden> 06/03/25 07:06:54
Modified files:
. : ChangeLog
engine : jitc_obj.c
Log message:
2006-03-25 Klaus Treichel <address@hidden>
* enjine/jitc_obj.c: Fix a bug in ILJITCoder_CastClass that caused a
segfault in IsInst when the object to cast was null.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/dotgnu-pnet/pnet/ChangeLog.diff?tr1=1.3309&tr2=1.3310&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/dotgnu-pnet/pnet/engine/jitc_obj.c.diff?tr1=1.13&tr2=1.14&r1=text&r2=text
Patches:
Index: pnet/ChangeLog
diff -u pnet/ChangeLog:1.3309 pnet/ChangeLog:1.3310
--- pnet/ChangeLog:1.3309 Sun Mar 19 15:22:37 2006
+++ pnet/ChangeLog Sat Mar 25 07:06:54 2006
@@ -1,3 +1,8 @@
+2006-03-25 Klaus Treichel <address@hidden>
+
+ * enjine/jitc_obj.c: Fix a bug in ILJITCoder_CastClass that caused a
+ segfault in IsInst when the object to cast was null.
+
2006-03-19 Rainer Größlinger <address@hidden>
* libgc/Makefile.am, libgc/Makefile.direct, libgc/Makefile.in,
Index: pnet/engine/jitc_obj.c
diff -u pnet/engine/jitc_obj.c:1.13 pnet/engine/jitc_obj.c:1.14
--- pnet/engine/jitc_obj.c:1.13 Wed Mar 8 21:03:52 2006
+++ pnet/engine/jitc_obj.c Sat Mar 25 07:06:54 2006
@@ -183,7 +183,13 @@
jit_label_t label = jit_label_undefined;
ILJitValue args[3];
ILJitValue returnValue;
+ ILJitValue result = jit_value_create(jitCoder->jitFunction,
+
_IL_JIT_TYPE_VPTR);
+ if(!throwException)
+ {
+ jit_insn_store(jitCoder->jitFunction, result, object);
+ }
jit_insn_branch_if_not(jitCoder->jitFunction, object, &label);
if(ILClass_IsInterface(classInfo))
{
@@ -215,19 +221,14 @@
}
else
{
- jit_label_t label1 = jit_label_undefined;
- ILJitValue temp = jit_value_create(jitCoder->jitFunction,
_IL_JIT_TYPE_VPTR);
ILJitValue nullPointer =
jit_value_create_nint_constant(jitCoder->jitFunction,
_IL_JIT_TYPE_VPTR,
(jit_nint)0);
- jit_insn_branch_if(jitCoder->jitFunction, returnValue, &label1);
- jit_insn_store(jitCoder->jitFunction, temp, nullPointer);
- jit_insn_branch(jitCoder->jitFunction, &label);
- jit_insn_label(jitCoder->jitFunction, &label1);
- jit_insn_store(jitCoder->jitFunction, temp,
jitCoder->jitStack[jitCoder->stackTop - 1]);
- jitCoder->jitStack[jitCoder->stackTop - 1] = temp;
+ jit_insn_branch_if(jitCoder->jitFunction, returnValue, &label);
+ jit_insn_store(jitCoder->jitFunction, result, nullPointer);
+ jitCoder->jitStack[jitCoder->stackTop - 1] = result;
}
jit_insn_label(jitCoder->jitFunction, &label);
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [dotgnu-pnet-commits] pnet ./ChangeLog engine/jitc_obj.c,
Klaus Treichel <=