[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Dotgnu-pnet-commits] CVS: pnet/engine lib_reflect.c,1.22,1.23
From: |
Gopal.V <address@hidden> |
Subject: |
[Dotgnu-pnet-commits] CVS: pnet/engine lib_reflect.c,1.22,1.23 |
Date: |
Mon, 02 Dec 2002 14:08:35 -0500 |
Update of /cvsroot/dotgnu-pnet/pnet/engine
In directory subversions:/tmp/cvs-serv15981/engine
Modified Files:
lib_reflect.c
Log Message:
partial impl of FieldInfo.GetValue()
Index: lib_reflect.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/engine/lib_reflect.c,v
retrieving revision 1.22
retrieving revision 1.23
diff -C2 -r1.22 -r1.23
*** lib_reflect.c 22 Oct 2002 22:16:09 -0000 1.22
--- lib_reflect.c 2 Dec 2002 19:08:33 -0000 1.23
***************
*** 1296,1300 ****
ILObject *obj)
{
! /* TODO */
return 0;
}
--- 1296,1356 ----
ILObject *obj)
{
! unsigned long len;
! ILProgramItem *item;
! ILField *field;
! ILConstant *constant;
! ILInt32 intValue;
! ILUInt32 uintValue;
! ILInt64 longValue;
! ILUInt64 ulongValue;
! ILFloat floatValue;
! ILDouble doubleValue;
! const char* strValue;
!
! item = (ILProgramItem *)_ILClrFromObject(thread, _this);
! if(!item)return 0;
! field = ILProgramItemToField(item);
! if(!field)return 0;
! constant = ILConstantGetFromOwner(item);
!
! if(!constant)return 0;
! switch(ILConstantGetElemType(constant))
! {
! case IL_META_ELEMTYPE_BOOLEAN:
! case IL_META_ELEMTYPE_CHAR:
! case IL_META_ELEMTYPE_I1:
! case IL_META_ELEMTYPE_I2:
! case IL_META_ELEMTYPE_I4:
! intValue =
*((ILInt32*)(ILConstantGetValue(constant,&(len))));
! return
ILExecThreadBox(thread,ILField_Type(field),&(intValue));
! break;
! case IL_META_ELEMTYPE_U1:
! case IL_META_ELEMTYPE_U2:
! case IL_META_ELEMTYPE_U4:
! uintValue =
*((ILUInt32*)(ILConstantGetValue(constant,&(len))));
! return
ILExecThreadBox(thread,ILField_Type(field),&(uintValue));
! break;
! case IL_META_ELEMTYPE_I8:
! longValue =
*((ILInt64*)(ILConstantGetValue(constant,&(len))));
! return
ILExecThreadBox(thread,ILField_Type(field),&(longValue));
! break;
! case IL_META_ELEMTYPE_U8:
! ulongValue =
*((ILInt64*)(ILConstantGetValue(constant,&(len))));
! return
ILExecThreadBox(thread,ILField_Type(field),&(ulongValue));
! break;
! case IL_META_ELEMTYPE_R4:
! floatValue =
*((ILFloat*)(ILConstantGetValue(constant,&(len))));
! return
ILExecThreadBox(thread,ILField_Type(field),&(floatValue));
! break;
! case IL_META_ELEMTYPE_R8:
! doubleValue =
*((ILDouble*)(ILConstantGetValue(constant,&(len))));
! return
ILExecThreadBox(thread,ILField_Type(field),&(doubleValue));
! break;
! case IL_META_ELEMTYPE_STRING:
! strValue = (const char *)(ILConstantGetValue(constant,
&len));
! return
(ILObject*)((System_String*)ILStringCreateLen(thread,
!
strValue,len));
! /* TODO : implement the object cases for the GetValue */
! }
return 0;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Dotgnu-pnet-commits] CVS: pnet/engine lib_reflect.c,1.22,1.23,
Gopal.V <address@hidden> <=