Beispiel #1
0
QPpsAttribute QPpsObjectPrivate::decodeData(pps_decoder_t *decoder)
{
    pps_node_type_t nodeType = pps_decoder_type(decoder, 0);
    switch (nodeType) {
    case PPS_TYPE_BOOL:
        return decodeBool(decoder);
    case PPS_TYPE_NUMBER:
        return decodeNumber(decoder);
    case PPS_TYPE_STRING:
        return decodeString(decoder);
    case PPS_TYPE_ARRAY:
        return decodeNestedData(&QPpsObjectPrivate::decodeArray, decoder);
    case PPS_TYPE_OBJECT:
        return decodeNestedData(&QPpsObjectPrivate::decodeObject, decoder);
    case PPS_TYPE_DELETED: {
        // This should create an attribute with the flags set to PpsAttribute::Deleted.
        // However, we need to create a valid QPpsAttribute while doing so. To do this,
        // I'll create an empty map as a sentinel. Note that the readFlags() call with produce
        // the correct set of flags. While I suspect that there will never be any other flags
        // set in conjunction with this one, I'd rather not be surprised later.
        QPpsAttributeMap emptyMap;
        QPpsAttribute::Flags flags = readFlags(decoder);
        QPpsAttribute returnVal = QPpsAttributePrivate::createPpsAttribute(emptyMap, flags);
        return returnVal;
    }
    case PPS_TYPE_NULL:
    case PPS_TYPE_NONE:
    case PPS_TYPE_UNKNOWN:
    default:
        qWarning() << "QPpsObjectPrivate::decodeData: invalid pps_node_type";
        return QPpsAttribute();
    }
}
Beispiel #2
0
PGF readPGF(char *filename) {
  FILE *f = fopen(filename, "rb");
  if (f == NULL)
    return NULL;
    
  int maj_ver = readInt16(f);
  int min_ver = readInt16(f);
  
  Flags flags = readFlags(f);
  
  struct _Abstract abstr;
  readAbstr(f, &abstr);
  
  int nConcr = readInt(f);
  PGF pgf = (PGF) malloc(sizeof(struct _PGF)+sizeof(Concrete)*nConcr);
  
  pgf->flags    = flags;
  pgf->abstract = abstr;
  pgf->nConcr   = nConcr;
  
  int i;
//  for (i = 0; i < nConcr; i++) {
//    readConcr(f, &pgf->concretes[i]);
//  }

  fclose(f);
  return pgf;
}
Beispiel #3
0
void DebugOptimTab::setReleaseOptions()
{
    QStringList sl = QStringList::split(",", "'-$O+','-$Y-','-$D-','-$L-'");
    readFlags(&sl);
    gdb->setChecked(false);
    namespacedb->setChecked(false);
    symboldb->setChecked(false);
}
Beispiel #4
0
void DebugOptimTab::setDebugOptions()
{
    QStringList sl = QStringList::split(",", "-g,-gl,-gh,-gc");
    readFlags(&sl);
    m_default->setChecked(true);
    m_default2->setChecked(true);
//    m_default3->setChecked(true);
}
Beispiel #5
0
void DebugOptimTab::setReleaseOptions()
{
    m_default->setChecked(true);
    m_default2->setChecked(true);
//    m_default3->setChecked(true);
    QStringList sl = QStringList::split(",", "-!g,-!gd,-!gl,-!gh,-!gc,-!pg,-!Ou,-!Or");
    readFlags(&sl);
    optim1->setChecked(true);
    optim2->setChecked(true);
}
Beispiel #6
0
QPpsAttribute QPpsObjectPrivate::decodeBool(pps_decoder_t *decoder)
{
    bool value;
    pps_decoder_error_t error = pps_decoder_get_bool(decoder, 0, &value);

    if (error != PPS_DECODER_OK) {
        qWarning() << "QPpsObjectPrivate::decodeBool: pps_decoder_get_bool failed";
        return QPpsAttribute();
    }

    QPpsAttribute::Flags flags = readFlags(decoder);
    return QPpsAttributePrivate::createPpsAttribute(value, flags);
}
Beispiel #7
0
QPpsAttribute QPpsObjectPrivate::decodeString(pps_decoder_t *decoder)
{
    const char *value = 0;
    pps_decoder_error_t error = pps_decoder_get_string(decoder, 0, &value);

    if (error != PPS_DECODER_OK) {
        qWarning() << "QPpsObjectPrivate::decodeString: PPS_DECODER_GET_STRING failed";
        return QPpsAttribute();
    }

    QPpsAttribute::Flags flags = readFlags(decoder);
    return QPpsAttributePrivate::createPpsAttribute(QString::fromUtf8(value), flags);
}
Beispiel #8
0
QPpsAttribute QPpsObjectPrivate::decodeNumber(pps_decoder_t *decoder)
{
    // In order to support more number types, we have to do something stupid because the PPS
    // library won't let us work any other way. Basically, we have to probe the encoded type in
    // order to try to get exactly what we want.
    int64_t llValue;
    double dValue;
    int iValue;
    QPpsAttribute::Flags flags;

    if (pps_decoder_is_integer(decoder, 0)) {
        pps_decoder_error_t error = pps_decoder_get_int(decoder, 0, &iValue);
        switch (error) {
        case PPS_DECODER_OK:
            flags = readFlags(decoder);
            return QPpsAttributePrivate::createPpsAttribute(iValue, flags);
        case PPS_DECODER_CONVERSION_FAILED:
            error = pps_decoder_get_int64(decoder, 0, &llValue);
            if (error != PPS_DECODER_OK) {
                qWarning() << "QPpsObjectPrivate::decodeNumber: failed to decode integer";
                return QPpsAttribute();
            }
            flags = readFlags(decoder);
            return QPpsAttributePrivate::createPpsAttribute(static_cast<long long>(llValue), flags);
        default:
            qWarning() << "QPpsObjectPrivate::decodeNumber: pps_decoder_get_int failed";
            return QPpsAttribute();
        }
    } else {
        pps_decoder_error_t error = pps_decoder_get_double(decoder, 0, &dValue);
        if (error != PPS_DECODER_OK) {
            qWarning() << "QPpsObjectPrivate::decodeNumber: pps_decoder_get_double failed";
            return QPpsAttribute();
        }
        flags = readFlags(decoder);
        return QPpsAttributePrivate::createPpsAttribute(dValue, flags);
    }
}
Beispiel #9
0
QPpsAttribute QPpsObjectPrivate::decodeNestedData(T (*decodeFunction)(pps_decoder_t *, bool *),
                                                  pps_decoder_t *decoder)
{
    // We must read the flags before we push into the object,
    // otherwise we'll get the flags for the first element in the object.
    QPpsAttribute::Flags flags = readFlags(decoder);

    if (!decoderPush(decoder))
        return QPpsAttribute();

    bool ok = false;

    T attributeContainer = decodeFunction(decoder, &ok);

    if (!ok)
        return QPpsAttribute();

    QPpsAttribute returnVal = QPpsAttributePrivate::createPpsAttribute(attributeContainer, flags);

    if (!decoderPop(decoder))
        return QPpsAttribute();

    return returnVal;
}
void BasicExternalizableMessage::read(AmfReader *stream)
{
    int byteN = 0;
    foreach(quint8 flag, readFlags(stream)){
        int bits = 0;

        if(byteN == 0){
            if((flag & BODY_FLAG) != 0)
                body = stream->readAmf3Next();
            if((flag & CLIENT_ID_FLAG) != 0)
                clientId = stream->readAmf3Next().toString();
            if((flag & DESTINATION_FLAG) != 0)
                dest = stream->readAmf3Next().toString();
            if((flag & HEADERS_FLAG) != 0)
                headers = stream->readAmf3Next();
            if((flag & MESSAGE_ID_FLAG) != 0)
                messageId = stream->readAmf3Next().toString();
            if((flag & TIMESTAMP_FLAG) != 0)
                timestamp = stream->readAmf3Next().toLongLong();
            if((flag & TIME_TO_LIVE_FLAG) != 0)
                timestamp = stream->readAmf3Next().toLongLong();

            bits = 7;

        } else if(byteN == 1){
            if((flag & CLIENT_ID_BYTES_FLAG) != 0)
                clientIdBytes = stream->readAmf3Next().toByteArray();
            if((flag & MESSAGE_ID_BYTES_FLAG) != 0)
                messageIdBytes = stream->readAmf3Next().toByteArray();

            bits = 2;
        }

        discardRemaining(stream, flag, bits);
        ++byteN;
    }
Beispiel #11
0
void TranslatorAction::init() {
    readFlags();
    MemoryManager& mm = getJITInstanceContext().getGlobalMemoryManager();
    irbAction = (IRBuilderAction*)createAuxAction(mm, IRBUILDER_ACTION_NAME, "irbuilder");
    irbAction->init();
}    
Beispiel #12
0
void DebugOptimTab::setDebugOptions()
{
    QStringList sl = QStringList::split(",", "'-$O-','-$Y+','-$D+','-$L+',-V,-VN");
    readFlags(&sl);
}
Beispiel #13
0
static void readConcr(FILE *f, Concrete concr) {
  concr->name  = readCId(f);
  concr->flags = readFlags(f);
}
Beispiel #14
0
static void readAbstr(FILE *f, Abstract abstr) {
  abstr->name  = readCId(f);
  abstr->flags = readFlags(f);
  abstr->funs  = readAbsFuns(f);
  abstr->cats  = readAbsCats(f);
}