[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[dotgnu-pnet-commits] pnet ChangeLog engine/jitc_array.c
From: |
Klaus Treichel |
Subject: |
[dotgnu-pnet-commits] pnet ChangeLog engine/jitc_array.c |
Date: |
Sun, 21 Jan 2007 11:46:39 +0000 |
CVSROOT: /cvsroot/dotgnu-pnet
Module name: pnet
Changes by: Klaus Treichel <ktreichel> 07/01/21 11:46:39
Modified files:
. : ChangeLog
engine : jitc_array.c
Log message:
2007-01-21 Klaus Treichel <address@hidden>
* engine/jitc_array.c: Fix a deadlock if the object array for
varargs or
async delegate invokation is created and the class for the
object array
doesn't exist yet.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/pnet/ChangeLog?cvsroot=dotgnu-pnet&r1=1.3404&r2=1.3405
http://cvs.savannah.gnu.org/viewcvs/pnet/engine/jitc_array.c?cvsroot=dotgnu-pnet&r1=1.7&r2=1.8
Patches:
Index: ChangeLog
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/ChangeLog,v
retrieving revision 1.3404
retrieving revision 1.3405
diff -u -b -r1.3404 -r1.3405
--- ChangeLog 19 Jan 2007 18:42:11 -0000 1.3404
+++ ChangeLog 21 Jan 2007 11:46:38 -0000 1.3405
@@ -1,3 +1,9 @@
+2007-01-21 Klaus Treichel <address@hidden>
+
+ * engine/jitc_array.c: Fix a deadlock if the object array for varargs or
+ async delegate invokation is created and the class for the object array
+ doesn't exist yet.
+
2007-01-19 Klaus Treichel <address@hidden>
* engine/cvmc_call.c: Check for running a cctor too if a function
pointer
Index: engine/jitc_array.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/engine/jitc_array.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- engine/jitc_array.c 16 Jan 2007 06:46:08 -0000 1.7
+++ engine/jitc_array.c 21 Jan 2007 11:46:39 -0000 1.8
@@ -426,19 +426,33 @@
ILJitValue thread,
ILUInt32 numElements)
{
- ILMethod *ctor;
+ ILClass *objectClass = _ILExecThreadProcess(_thread)->objectClass;
+ ILType *objectType = ILType_FromClass(objectClass);
+ ILType *arrayType =
ILTypeFindOrCreateArray(_ILExecThreadProcess(_thread)->context,
+
1, objectType);
+ ILClass *arrayClass;
- /* Find the constructor for the array. */
- ctor = ILExecThreadLookupMethod(_thread, "[oSystem.Object;", ".ctor",
-
"(Ti)V");
- if(!ctor)
+ /* Find the object array class. */
+ if(!arrayType)
+ {
+ return 0;
+ }
+ arrayClass =
ILClassFromType(ILContextNextImage(_ILExecThreadProcess(_thread)->context, 0),
+ 0, arrayType,
0);
+ if(!arrayClass)
+ {
+ return 0;
+ }
+
+ arrayClass = ILClassResolve(arrayClass);
+ if(!arrayClass)
{
return 0;
}
return _ILJitSArrayNewWithConstantSize(jitFunction,
_thread,
-
ILMethod_Owner(ctor),
+
arrayClass,
numElements);
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [dotgnu-pnet-commits] pnet ChangeLog engine/jitc_array.c,
Klaus Treichel <=