dotgnu-pnet-commits
[Top][All Lists]
Advanced

[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;
  }





reply via email to

[Prev in Thread] Current Thread [Next in Thread]