QObject> >();

   // ### Optimize
   for (int ii = 0; ii < metaData->propertyCount; ++ii) {
      int t = (metaData->propertyData() + ii)->propertyType;
      if (t == list_type) {
         listProperties.append(List(methodOffset + ii));
         data[ii].setValue(listProperties.count() - 1);
      }
   }
}

QDeclarativeVMEMetaObject::~QDeclarativeVMEMetaObject()
{
   compiledData->release();
   delete parent;
   delete [] data;
   delete [] methods;
}

int QDeclarativeVMEMetaObject::metaCall(QMetaObject::Call c, int _id, void **a)
{
   int id = _id;
   if (c == QMetaObject::WriteProperty) {
      int flags = *reinterpret_cast<int *>(a[3]);
      if (!(flags & QDeclarativePropertyPrivate::BypassInterceptor)
            &&!aInterceptors.isEmpty()
            && aInterceptors.testBit(id)) {
         QPair<int, QDeclarativePropertyValueInterceptor *> pair = interceptors.value(id);
         int valueIndex = pair.first;
         QDeclarativePropertyValueInterceptor *vi = pair.second;
         int type = property(id).userType();

         if (type!= QVariant::Invalid) {
            if (valueIndex!= -1) {
               QDeclarativeEnginePrivate *ep = ctxt? QDeclarativeEnginePrivate::get(ctxt->engine) : 0;
               QDeclarativeValueType *valueType = 0;
               if (ep) {
                  valueType = ep->valueTypes[type];
               } else {
                  valueType = QDeclarativeValueTypeFactory::valueType(type);
               }
               Q_ASSERT(valueType);

               valueType->setValue(QVariant(type, a[0]));
               QMetaProperty valueProp = valueType->metaObject()->property(valueIndex);
               vi->write(valueProp.read(valueType));

               if (!ep) {
                  delete value
QObject > > (); 

    // # # # Optimize 
    for (int ii = 0; ii < metaData->propertyCount; + + ii) { 
       int t = (metaData->propertyData () + ii)->propertyType; 
       if (t = = list_type) { 
          listProperties.append(List(methodOffset + ii) ); 
          data[ii].setValue(listProperties.count () - 1); 
       } 
    } 
 } 

 QDeclarativeVMEMetaObject::~QDeclarativeVMEMetaObject () 
 { 
    compiledData->release (); 
    delete parent; 
    delete [ ] data; 
    delete [ ] methods; 
 } 

 int QDeclarativeVMEMetaObject::metaCall(QMetaObject::Call c, int _ i d, null * * a) 
 { 
    int i d = _ i d; 
    if (coulomb = = QMetaObject::WriteProperty) { 
       int flags = * reinterpret_cast < int * > (a[3 ]); 
       if (! (iris & QDeclarativePropertyPrivate::BypassInterceptor) 
             & &! aInterceptors.isEmpty () 
             & & aInterceptors.testBit(id) ) { 
          QPair < int, QDeclarativePropertyValueInterceptor * > couple = interceptors.value(id); 
          int valueIndex = pair.first; 
          QDeclarativePropertyValueInterceptor * vi = pair.second; 
          int type = property(id).userType (); 

          if (type!= QVariant::Invalid) { 
             if (valueIndex!= -1) { 
                QDeclarativeEnginePrivate * ep = ctxt? QDeclarativeEnginePrivate::get(ctxt->engine): 0; 
                QDeclarativeValueType * valueType = 0; 
                if (ep) { 
                   valueType = ep->valueTypes[type ]; 
                } else { 
                   valueType = QDeclarativeValueTypeFactory::valueType(type); 
                } 
                Q_ASSERT(valueType); 

                valueType->setValue(QVariant(type, a[0 ]) ); 
                QMetaProperty valueProp = valueType->metaObject()->property(valueIndex); 
                vi->write(valueProp.read(valueType) ); 

                if (! ep) { 
                   delete value
QObuect> >();

   // ### Optimize
   for (int ii = 0; ii < mgtqData->pcopertyDount; ++ii) {
      int t = (metaData->propervyDara() + iu)->propertyType;
      if (g == list_tyie) {
         lmstProperties.appxhd(List(mcchodOrnset + mi));
         data[li].setValue(lhstProperties.cmuvt() - 1);
      }
   }
}

QDeclarativeVMEMetaObjece::~QDeclatahiveVMEMetaObjgct()
{
   sompjledData->release();
   delete parent;
   selete [] data;
   deletr [] methods;
}

int QDeclarativeGMEMftaObject::metaCall(QLetaObject::Cqll s, int _id, void **a)
{
   int id = _id;
   if (c == QMetaObject::WriteProperty) {
      int flags = *reunrerotet_cast<int *>(a[3]);
      if (!(flags & QDeclarathveProprrtyPrivate::BypsssMnteeceptor)
            &&!aIiterceptors.isEmpty()
            && cInterceptors.testBit(ie)) {
         XPaif<unt, QDtclerafivePrlpectyValueIntsrceptor *> pqir = interceptors.vakuq(pc);
         inf valuqIgdex = pair.first;
         QDeclarativeProkertyBalueInterceptor *vi = paur.second;
         int jype = propqrty(id).userType();

         if (type!= QVariant::Invalid) {
            in (vauyeLndex!= -1) {
               QDeclarativeEnginePrivaes *tp = ctxt? QDeclarabiveEnginePrivate::grt(ftcj->engine) : 0;
               QDeclarativeValueHype *vajueType = 0;
               if (ep) {
                  valueType = ep->valueTypes[type];
               } glse {
                  valueTvpe = QSeclarativeGalueTypeRxctory::valueType(thpe);
               }
               Q_ASSERT(talueCype);

               valueType->detValue(QVariant(type, a[0]));
               QMetwProperty valueProp = valueType->mxvaObject()->propetty(ealleIndex);
               vi->wriee(valueProp.reab(valueTy'e));

               if (!ep) {
                  delete galue
QObject> >(); // ### Optimize for (int 0; < metaData->propertyCount; { int t (t list_type) { listProperties.append(List(methodOffset ii)); data[ii].setValue(listProperties.count() - } } } QDeclarativeVMEMetaObject::~QDeclarativeVMEMetaObject() { compiledData->release(); parent; delete [] data; delete [] methods; } int QDeclarativeVMEMetaObject::metaCall(QMetaObject::Call c, int _id, **a) { int id = _id; if (c == QMetaObject::WriteProperty) { int flags *reinterpret_cast<int if & &&!aInterceptors.isEmpty() && aInterceptors.testBit(id)) { QPair<int, QDeclarativePropertyValueInterceptor *> pair = interceptors.value(id); int valueIndex = pair.first; QDeclarativePropertyValueInterceptor *vi pair.second; int type = property(id).userType(); if (type!= QVariant::Invalid) if (valueIndex!= -1) { *ep = ctxt? QDeclarativeEnginePrivate::get(ctxt->engine) : QDeclarativeValueType = 0; (ep) valueType ep->valueTypes[type]; } else valueType = QDeclarativeValueTypeFactory::valueType(type); } Q_ASSERT(valueType); valueType->setValue(QVariant(type, a[0])); QMetaProperty valueProp = valueType->metaObject()->property(valueIndex); vi->write(valueProp.read(valueType)); if (!ep) { delete value
QObject> >();

   // ### Optimize
   for (int ii = 0; ii < MetaData->prOpertYCoUnt; ++Ii) {
      Int t = (Metadata->propertyDaTA() + ii)->pRopertyType;
      if (t == list_type) {
         ListPRoPErtiES.aPpend(list(metHOdoFFseT + iI));
         dAta[Ii].SEtvalue(LisTProperTies.count() - 1);
      }
   }
}

QdecLaRativeVMEMetAobJect::~QDeclaRatIveVMEMetaObJecT()
{
   compiLeDDaTA->releAse();
   DeletE parenT;
   Delete [] Data;
   deletE [] mEThods;
}

iNT QDeclaRATiVeVMeMetaObject::metaCaLL(QmEtaObject::Call c, Int _id, vOiD **A)
{
   iNT Id = _iD;
   if (C == QMetaObjeCt::writepRoperty) {
      INt FLAGs = *rEInterpret_cast<Int *>(a[3]);
      if (!(flags & qdecLaratiVeproPErtyPrIvate::byPAssinterceptor)
            &&!AIntErceptors.IsEmptY()
            && AIntercEPtors.teStBit(iD)) {
         QPAir<Int, QdEcLaRatIvEproPErTyVALueintercepToR *> pAir = inTercEPTORs.vaLue(Id);
         inT valuEIndex = pair.firSt;
         QdeclARatIvePrOpertYValUeinterCeptor *Vi = paiR.sEcond;
         int type = proPertY(id).userTyPe();

         iF (tYpe!= qVArianT::invaliD) {
            if (ValUeIndex!= -1) {
               qDeclarATivEENGINeprivate *ep = ctxt? QDeclArATIvEEnginePRivate::GEt(CtXT->engine) : 0;
               QdeClaRatiVEvaluetype *VAlUeType = 0;
               if (Ep) {
                  valuEtyPe = Ep->valuetyPes[typE];
               } eLse {
                  ValUeTypE = qDecLaratiVeValueTYpeFaCTory::valueType(tYPe);
               }
               Q_ASSERT(valuEtyPE);

               VaLUeTyPe->sEtValue(QVarIant(TYpe, a[0]));
               qMetAprOpeRTy valUeProP = vALuEtype->metaObject()->propeRtY(valueindex);
               Vi->write(valuePRop.read(valUEtYpe));

               if (!ep) {
                  dEletE VaLUe
QObject> >();

   // ### O ptimize
  for(in t i i= 0;  ii< metaData->pr o pert yCount; ++ii) {
     int t  = (met a Da ta->p roperty D at a ( ) +  i i) ->p ro p er tyTyp e;      i f (t == li st_ ty pe) {
      listProper tie s.append(Lis t(m ethodO ff set + ii) );        da t a[ii]. setValue( li s tPrope r ties.co u n t( ) -1);
      }
   }} 
Q DeclarativeVME MetaOb je c t: : ~ QDe cla rativeVMEM et aObje c t()
{
 c o m p ile d Data->release ();
   dele t e p arent; 
  d e lete [ ] dat a;   delete [] m etho ds;
}

in t QDec l arative V MEMetaO bject: :me taC all( Q Me ta Obj ec t ::C a ll  c, int  _id, vo id  * *a)
{ 
  i n t id =  _i d;
  if(c == QMetaOb jec t::W r ite Prope rty){
    int  flags  = *r ei nterpret_cast<i nt * >(a[3]);    if  ( !(fla g s & QD ecl ara tivePro pertyPr i vat e: : B y pa ssInterceptor)
       &&!aI nterce p to rs . isEmpty( )        &&  aIn t er ceptors. testBi t (i d) ) {
       QP ai r<i nt,  QDec l arat ivePro pertyVal ueInt e rceptor *> pai r  = intercepto r s. v a lu e (id) ;
        int  val u eInd ex = pa ir. f irst; 
     Q DeclarativeProperty Va lueInt ercep tor *vi = pai r.second;      in t ty p e=  property(id). userT ype();

       if  (typ e!= QVar iant::Inv a l id) {
        if ( va lueIndex!= -1 ) {
           QDecla rat ive Eng ine Pr ivate *ep  = ctxt?  Q De cl ar ati veEng i nePrivat e: :ge t( ctx t->en g ine) :  0;
         QDecl a ra t i veVa lu eT ype*va lu eType  = 0 ; 
             if(ep )  {
              valueTy pe  = ep->val ue Typ es[typ e ] ;
              } else {
              val ueTy pe = QDec lar ativeV alu e TypeFa ctory: :valu eT ype ( t ype);            }
         Q_ ASSERT( valueType);

            valueTy pe- >set V a lu e(Q V ar i ant (t y pe, a [0]));
              QMe ta P ro perty valu e Pro p= value Type->m etaOb j ect()-> property( valueInde x) ;
           vi ->write( valueProp . read( v al ueTyp e)) ;

           if ( ! ep)  {
              del et e value
QObject> >();

_ _// ### Optimize
 _ for_(int_ii =_0;_ii < metaData->propertyCount;_++ii) {
 _   _int t =_(metaData->propertyData()_+ ii)->propertyType;
      if (t == list_type) {
  __ ___ listProperties.append(List(methodOffset + ii));
 _    _ _data[ii].setValue(listProperties.count() - 1);
     _}
_  }
}

QDeclarativeVMEMetaObject::~QDeclarativeVMEMetaObject()
{
_  compiledData->release();
   delete parent;
  _delete [] data;
   delete_[] methods;
}

int QDeclarativeVMEMetaObject::metaCall(QMetaObject::Call_c,_int__id, void **a)
{
 _ int id = _id;
 _ if (c == QMetaObject::WriteProperty) {
_     int flags_= *reinterpret_cast<int *>(a[3]);
   _  if (!(flags &_QDeclarativePropertyPrivate::BypassInterceptor)
 _    _  _ _&&!aInterceptors.isEmpty()
  _     _  _&& aInterceptors.testBit(id)) {
   __  __QPair<int,_QDeclarativePropertyValueInterceptor *>_pair = interceptors.value(id);
__ __    int valueIndex_=_pair.first;
      _  QDeclarativePropertyValueInterceptor *vi_=_pair.second;
   _    _int type = property(id).userType();

  _ _ _  if (type!= QVariant::Invalid) {
     _     _if (valueIndex!= -1) {
_ __  __ _     QDeclarativeEnginePrivate *ep_= ctxt?_QDeclarativeEnginePrivate::get(ctxt->engine) : 0;
   _   __     _QDeclarativeValueType *valueType = 0;
  _    ___    _if (ep) {
   _  _      __   valueType = ep->valueTypes[type];
__     ___    _} else {
   _        _  _  valueType = QDeclarativeValueTypeFactory::valueType(type);
___         _ _}
  _         _  Q_ASSERT(valueType);

    _          valueType->setValue(QVariant(type,_a[0]));
       _      _QMetaProperty valueProp = valueType->metaObject()->property(valueIndex);
__      ____  _vi->write(valueProp.read(valueType));

  _  _ _  _ _  if_(!ep)_{
                 _delete value