Esempio n. 1
0
	void ObjTracer::extract_intent( Object * obj )
	{	
		InstField *pF1, *pF2;
		Object *o1, *o2;
		
		fprintf( traceFile_, "instUid %u #%d:  %p\n", 
			opcodeTracer.get_instUid(), INTENT_OBJ, obj );

			
		// mAction in Intent
		pF1 = &obj->clazz->ifields[0];
		o1 = dvmGetFieldObject ( obj, pF1->byteOffset );
		this->extract_str(o1);
		
		//mComponent in Intent
		pF1 = &obj->clazz->ifields[3];
		o1 = dvmGetFieldObject ( obj, pF1->byteOffset );
		{
			if (check_obj(o1))
			{
				//mClass in mComponent
				pF2 = &o1->clazz->ifields[0];
				o2 = dvmGetFieldObject ( o1, pF2->byteOffset );
				this->extract_str(o2);
				//mPackage in mComponent
				pF2 =  &o1->clazz->ifields[1];
				o2 = dvmGetFieldObject ( o1, pF2->byteOffset );
				this->extract_str(o2);
			}
			else
				fprintf(traceFile_, "\n\n");
			
		}

		//mType in Intent
		pF1 = &obj->clazz->ifields[6];
		o1 = dvmGetFieldObject ( obj, pF1->byteOffset );
		this->extract_str(o1);
		
		//mPackage in Intent
		pF1 = &obj->clazz->ifields[7];
		o1 = dvmGetFieldObject( obj, pF1->byteOffset );
		this->extract_str(o1);

		//fprintf(f, "\n");
		fflush(traceFile_);				
	}
Esempio n. 2
0
	void ObjTracer::extract_str(const Object * const obj, ObjWriteMode flag)
	{
		if ( !check_obj ( obj ) )
		{	
			ALOG(LOG_VERBOSE, "YWB", "OBJECT NULL");
			fprintf(traceFile_, "\n");
			return;
		}
		else
		{
			StringObject * so = (StringObject *) obj;
			const u2 *s = so->chars();
			if ( s == NULL )
        		{
        			ALOG(LOG_VERBOSE, "YWB","string is null");
        			return;
        		}
        		this->record_str( obj, s, sizeof(u2) * so->length(), flag );		
		}

	}
Esempio n. 3
0
File: parser.c Progetto: fave-r/RT
void		fill_list(char **tmp, t_flag tab[], t_obj *obj, t_spot *spot)
{
  static int	i = 0;

  i++;
  if (is_in_tab(tmp[0], tab) == 1)
    {
      check_obj(tmp, i);
      new_obj(tmp, obj);
    }
  else if (my_strcompare("SPOT", tmp[0]))
    {
      check_spot(tmp, i);
      new_spot(tmp, spot);
    }
  else
    {
      fprintf(stderr, "Unknown object line %d\n", i);
      exit(EXIT_FAILURE);
    }
}
Esempio n. 4
0
File: light.c Progetto: Xelatr/Rtv1
void		my_light(t_rtv *rtv, t_coord *light)
{
  int		x;
  int		*color;
  double	norme[3];

  x = 0;
  norme[0] = 0;
  norme[1] = 0;
  norme[2] = 50;
  if (rtv->color != PLAN && rtv->color != 0x00896D)
    norme[2] = 0;
  check_obj(rtv, light, norme);
  color = malloc(sizeof(int) * (rtv->spot.here + 1));
  while (x < rtv->spot.here)
    {
      light->vx = rtv->spot.tab[x][0] - light->xo;
      light->vy = rtv->spot.tab[x][1] - light->yo;
      light->vz = rtv->spot.tab[x][2] - light->zo;
      color[x++] = make_light(rtv, light, norme);
    }
  rtv->color = my_average(color, rtv->spot.here);
  free(color);
}
Esempio n. 5
0
	void ObjTracer::extract_activRecord( const Object * const obj )
	{
		InstField *pF, *pF1;
		Object *o, *o1;
		
		fprintf( traceFile_, "instUid %u #%d:  %p\n", 
			opcodeTracer.get_instUid(), ACTREC_OBJ, obj );

		//baseDir
		pF = &obj->clazz->ifields[2];
		o = dvmGetFieldObject ( obj, pF->byteOffset );
		this->extract_str( o );

		//taskAffinity
		pF = &obj->clazz->ifields[6];
		o = dvmGetFieldObject ( obj, pF->byteOffset );
		this->extract_str( o );
		
		//dataDir
		pF = &obj->clazz->ifields[10];
		o = dvmGetFieldObject ( obj, pF->byteOffset );
		this->extract_str( o );
		
		//stringName
		pF = &obj->clazz->ifields[11];
		o = dvmGetFieldObject ( obj, pF->byteOffset );
		this->extract_str( o );
		
		//shortComponentName
		pF = &obj->clazz->ifields[14];
		o = dvmGetFieldObject ( obj, pF->byteOffset );
		this->extract_str( o );
		
		//resDir
		pF = &obj->clazz->ifields[21];
		o = dvmGetFieldObject ( obj, pF->byteOffset );
		this->extract_str( o );
		
		//realActivity
		pF = &obj->clazz->ifields[22];
		o = dvmGetFieldObject ( obj, pF->byteOffset );
		if ( check_obj(o) )
		{
			//mClass in mComponent
			pF1 = &o->clazz->ifields[0];
			o1 = dvmGetFieldObject ( o, pF1->byteOffset );
			this->extract_str(o1);
			//mPackage in mComponent
			pF1 =  &o->clazz->ifields[1];
			o1 = dvmGetFieldObject ( o, pF1->byteOffset );
			this->extract_str(o1);
		}
		else
			fprintf(traceFile_, "\n\n");
		
		//processName
		pF = &obj->clazz->ifields[23];
		o = dvmGetFieldObject ( obj, pF->byteOffset );
		this->extract_str( o );
		
		//intent
		pF = &obj->clazz->ifields[25];
		o = dvmGetFieldObject ( obj, pF->byteOffset );
		if (check_obj(o))
		{
			pF1 = &o->clazz->ifields[0];
			o1 = dvmGetFieldObject( o, pF1->byteOffset );
			this->extract_str(o1);
		}
		else
			fprintf(traceFile_, "\n");
		
		//packageName	
		pF = &obj->clazz->ifields[28];
		o = dvmGetFieldObject ( obj, pF->byteOffset );
		this->extract_str( o );	
		
		//launchedFromUid
		pF = &obj->clazz->ifields[61];
		u4 i = dvmGetFieldInt( obj, pF->byteOffset );
		this->record_normal('I', &i );

		//fprintf(f, "\n");
		fflush(traceFile_);
	}