List * ring_vm_newtempvar2 ( VM *pVM,const char *cStr,List *pList3 ) { List *pList,*pList2 ; pList = ring_vm_newvar2(cStr,pVM->pTempMem); ring_list_setint(pList,RING_VAR_TYPE,RING_VM_LIST); ring_list_setlist(pList,RING_VAR_VALUE); pList2 = ring_list_getlist(pList,RING_VAR_VALUE); ring_list_deleteallitems(pList2); ring_list_copy(pList2,pList3); return pList ; }
void ring_vm_addnewcpointervar ( VM *pVM,const char *cStr,void *pPointer,const char *cStr2 ) { List *pList, *pList2 ; pList = ring_vm_newvar2(cStr,pVM->pActiveMem); ring_list_setint(pList,RING_VAR_TYPE,RING_VM_LIST); ring_list_setlist(pList,RING_VAR_VALUE); pList2 = ring_list_getlist(pList,RING_VAR_VALUE); /* Add Pointer */ ring_list_addpointer(pList2,pPointer); /* Add Type */ ring_list_addstring(pList2,cStr2); /* Add Status Number */ ring_list_addint(pList2,RING_CPOINTERSTATUS_NOTCOPIED); }
void ring_vm_refmeta_setattribute ( void *pPointer ) { List *pList ; char *cStr ; int x ; if ( RING_API_PARACOUNT != 3 ) { RING_API_ERROR(RING_API_BADPARACOUNT); return ; } if ( RING_API_ISLIST(1) && RING_API_ISSTRING(2) ) { pList = RING_API_GETLIST(1) ; if ( ring_vm_oop_isobject(pList) ) { pList = ring_list_getlist(pList,RING_OBJECT_OBJECTDATA); cStr = RING_API_GETSTRING(2) ; ring_string_lower(cStr); for ( x = 1 ; x <= ring_list_getsize(pList) ; x++ ) { if ( strcmp(ring_list_getstring(ring_list_getlist(pList,x),RING_VAR_NAME),cStr) == 0 ) { pList = ring_list_getlist(pList,x) ; if ( RING_API_ISNUMBER(3) ) { ring_list_setdouble(pList,RING_VAR_VALUE,RING_API_GETNUMBER(3)); } else if ( RING_API_ISSTRING(3) ) { ring_list_setstring2(pList,RING_VAR_VALUE,RING_API_GETSTRING(3),RING_API_GETSTRINGSIZE(3)); } else if ( RING_API_ISLIST(3) ) { ring_list_setlist(pList,RING_VAR_VALUE); pList = ring_list_getlist(pList,RING_VAR_VALUE); ring_list_deleteallitems(pList); ring_list_copy(pList,RING_API_GETLIST(3)); } return ; } } RING_API_ERROR("Error : Property is not found!"); } else { RING_API_ERROR(RING_API_BADPARATYPE); } } else { RING_API_ERROR(RING_API_BADPARATYPE); } }