Example #1
0
void Nmr::on_isotopeCombo_currentIndexChanged(QString const& text)
{
   QString isotope(currentIsotope(text));

   Data::NmrReferenceLibrary& library(Data::NmrReferenceLibrary::instance());
   QList<Data::NmrReference const*> refs(library.filter(isotope));

   QStringList systems;
   QList<Data::NmrReference const*>::iterator iter;
   for (iter = refs.begin(); iter != refs.end(); ++iter) {
       QString system((*iter)->system());
       if (!systems.contains(system)) systems.append(system);
   }

   QComboBox* combo(m_ui->systemCombo);
   combo->clear();
   combo->addItems(systems);

   loadShifts(currentReference(), isotope);

   QPair<double, double> range(standardRange(isotope));
   m_plot->xAxis->setRange(range.first, range.second);

   updatePlot();
}
void WWinPartService::Reset()
{
  IWorkbenchPage* tempPage = activePage;
  activePage = 0;
  if (tempPage)
  {
    WorkbenchPage* page = dynamic_cast<WorkbenchPage*>(tempPage);

    std::vector<IWorkbenchPartReference::Pointer> refs(page->GetOpenParts());

    for (std::size_t i = 0; i < refs.size(); i++)
    {
      IWorkbenchPartReference::Pointer reference = refs[i];

      if (page->IsPartVisible(reference))
      {
        partService.FirePartHidden(reference);
      }

      partService.FirePartClosed(reference);
    }

    tempPage->RemovePartListener(partListener);
  }

}
    void DisassemblerDatabase::load()
    {
        this->_disassemblerdb.open(this->_filename.toUtf8().constData());
        SQLiteStatement s(this->_disassemblerdb, "SELECT * FROM SymbolTable");

        while(s.step())
        {
            DataValue addressvalue = DataValue::create(s.column(0).integer64(), this->_symboltable->addressType());
            DataValue sizevalue = DataValue::create(s.column(3).integer64(), this->_symboltable->addressType());
            this->_symboltable->set(static_cast<Symbol::Type>(s.column(2).integer()), addressvalue, sizevalue, DataValue(), QString::fromUtf8(s.column(1).text()));

            if(s.column(4).integer64())
            {
                Symbol* symbol = this->_symboltable->get(addressvalue);
                SQLiteStatement refs(this->_disassemblerdb, "SELECT * FROM ReferenceTable WHERE Address = ?");
                refs.bind(1, s.column(0).integer64());

                while(refs.step())
                {
                    DataValue referencevalue = DataValue::create(refs.column(1).integer64(), this->_symboltable->addressType());
                    symbol->addSource(referencevalue);
                }
            }
        }

        this->_disassemblerdb.close();
    }
Example #4
0
static int Android_JNI_FileClose(SDL_RWops* ctx, bool release)
{
    LocalReferenceHolder refs(__FUNCTION__);
    int result = 0;
    JNIEnv *mEnv = Android_JNI_GetEnv();

    if (!refs.init(mEnv)) {
        SDL_SetError("Failed to allocate enough JVM local references");
        return -1;
    }

    if (ctx) {
        if (release) {
            mEnv->DeleteGlobalRef((jobject)ctx->hidden.androidio.fileNameRef);
        }

        jobject inputStream = (jobject)ctx->hidden.androidio.inputStreamRef;

        // inputStream.close();
        jmethodID mid = mEnv->GetMethodID(mEnv->GetObjectClass(inputStream),
                "close", "()V");
        mEnv->CallVoidMethod(inputStream, mid);
        mEnv->DeleteGlobalRef((jobject)ctx->hidden.androidio.inputStreamRef);
        mEnv->DeleteGlobalRef((jobject)ctx->hidden.androidio.readableByteChannelRef);
        if (Android_JNI_ExceptionOccurred()) {
            result = -1;
        }

        if (release) {
            SDL_FreeRW(ctx);
        }
    }

    return result;
}
Example #5
0
Status ViewCatalog::_upsertIntoGraph(OperationContext* opCtx, const ViewDefinition& viewDef) {

    // Performs the insert into the graph.
    auto doInsert = [this, &opCtx](const ViewDefinition& viewDef, bool needsValidation) -> Status {
        // Validate that the pipeline is eligible to serve as a view definition. If it is, this
        // will also return the set of involved namespaces.
        auto pipelineStatus = _validatePipeline_inlock(opCtx, viewDef);
        if (!pipelineStatus.isOK()) {
            if (needsValidation) {
                uassertStatusOKWithContext(pipelineStatus.getStatus(),
                                           str::stream() << "Invalid pipeline for view "
                                                         << viewDef.name().ns());
            }
            return pipelineStatus.getStatus();
        }

        auto involvedNamespaces = pipelineStatus.getValue();
        std::vector<NamespaceString> refs(involvedNamespaces.begin(), involvedNamespaces.end());
        refs.push_back(viewDef.viewOn());

        int pipelineSize = 0;
        for (auto obj : viewDef.pipeline()) {
            pipelineSize += obj.objsize();
        }

        if (needsValidation) {
            // Check the collation of all the dependent namespaces before updating the graph.
            auto collationStatus = _validateCollation_inlock(opCtx, viewDef, refs);
            if (!collationStatus.isOK()) {
                return collationStatus;
            }
            return _viewGraph.insertAndValidate(viewDef, refs, pipelineSize);
        } else {
            _viewGraph.insertWithoutValidating(viewDef, refs, pipelineSize);
            return Status::OK();
        }
    };

    if (_viewGraphNeedsRefresh) {
        _viewGraph.clear();
        for (auto&& iter : _viewMap) {
            auto status = doInsert(*(iter.second.get()), false);
            // If we cannot fully refresh the graph, we will keep '_viewGraphNeedsRefresh' true.
            if (!status.isOK()) {
                return status;
            }
        }
        // Only if the inserts completed without error will we no longer need a refresh.
        opCtx->recoveryUnit()->onRollback([this]() { this->_viewGraphNeedsRefresh = true; });
        _viewGraphNeedsRefresh = false;
    }

    // Remove the view definition first in case this is an update. If it is not in the graph, it
    // is simply a no-op.
    _viewGraph.remove(viewDef.name());

    return doInsert(viewDef, true);
}
Example #6
0
void pushFrame(refFrame frame, int count)
{ refRefObject slotsStart = refs(frame);
  count(frame) = count;
  while (count > 0)
  { d(slotsStart) = nil;
    slotsStart += 1;
    count -= 1; }
  link(frame) = frames;
  frames = frame; }
void WWinPartService::PageActivated(SmartPointer<IWorkbenchPage> newPage)
{
  // Optimize.
  if (newPage == activePage)
  {
    return;
  }

  // Fire events in the following order:

  // 1. For each open part in the new page, open it and then (if applicable) make it visible
  // 2. Deactivate old active part
  // 3. Activate the new active part
  // 4. For each open part in the old page, make it invisible then close it

  // Hook listener on the new page.
  if (newPage)
  {
    std::vector<IWorkbenchPartReference::Pointer> refs(newPage.Cast<
        WorkbenchPage> ()->GetOpenParts());

    for (std::size_t i = 0; i < refs.size(); i++)
    {
      IWorkbenchPartReference::Pointer reference = refs[i];

      partService.FirePartOpened(reference);

      IWorkbenchPart::Pointer part = reference->GetPart(false);
      if (part && newPage->IsPartVisible(part))
      {
        partService.FirePartVisible(reference);
      }
    }

    partService.SetActivePart(newPage->GetActivePartReference());
    selectionService.SetActivePart(newPage->GetActivePart());
  }
  else
  {
    partService.SetActivePart(IWorkbenchPartReference::Pointer(0));
    selectionService.SetActivePart(IWorkbenchPart::Pointer(0));
  }

  // Unhook listener from the old page.
  Reset();

  // Update active page.
  activePage = newPage.GetPointer();

  if (newPage)
  {
    newPage->AddPartListener(partListener);
  }

}
Example #8
0
void Configuration::readConfig()
{
    if (!m_dirty)
        return;
    m_dirty = false;
    QObject deleterParent;

    QDir dir = QDir::current();
    do {
        QDir git = dir;
        if (git.cd(".git")) {
            m_repoDir = dir;
            m_repoMetaDataDir = git;
            QDir refs(git.absoluteFilePath("refs/heads"));
            m_emptyRepo = refs.count() == 2; // only '.' and '..'
            break;
        }
        if (!dir.cdUp())
            break;
    } while(!dir.isRoot());

    QString home = QDir::homePath();
    QFile *config;
    config = new QFile(home + "/.vng/config", &deleterParent);
    if (! config->exists())
        config = new QFile(home + "/.darcs/defaults", &deleterParent);
    if (config->exists()) {
        if (! config->open(QIODevice::ReadOnly)) {
            Logger::error() << "Failed to open config file, is it readable?\n";
            return;
        }

        char buf[1024];
        while(true) {
            qint64 lineLength = config->readLine(buf, sizeof(buf));
            if (lineLength == -1)
                break;
            QString line = QString::fromUtf8(buf, lineLength);
            QString option;
            if (line.startsWith("ALL "))
                option = line.mid(3).trimmed();
            else if (line.length() > m_section.length() && line.startsWith(m_section))
                option = line.mid(m_section.length()).trimmed();
            if (! option.isEmpty()) {
                const int index = option.indexOf(' ');
                if (index > 0) {
                    m_options.insert(option.left(index).trimmed(), option.mid(index).trimmed());
                }
                else
                    m_options.insert(option, QString());
            }
        }
        config->close();
    }
}
Example #9
0
void CtcQInterCoreF::contract(IntervalVector& box) {
	Array<IntervalVector> refs(list.size());

	for (int i=0; i<list.size(); i++) {
		boxes[i]=box;
		list[i].contract(boxes[i]);
		refs.set_ref(i,boxes[i]);
	}

	box = qinter_coref(refs,q);
}
Example #10
0
wxString FeedPanel::DecorateStatusText(wxString text) const
{
	wxRegEx links(_T("((https?|www\\.)://[^[:space:]]+)"), wxRE_ICASE);
	wxRegEx hashtags(_T("#([[:alnum:]_]+)"));
	wxRegEx refs(_T("@([[:alnum:]_]+)"));

	links.ReplaceAll(&text, _T("<a href='\\1'>\\1</a>"));
	refs.ReplaceAll(&text, _T("@<a href='http://twitter.com/\\1'>\\1</a>"));
	hashtags.ReplaceAll(&text, _T("#<a href='http://hashtags.org/tag/\\1'>\\1</a>"));

	return text;
}
Example #11
0
extern "C" size_t Android_JNI_FileRead(SDL_RWops* ctx, void* buffer,
        size_t size, size_t maxnum)
{
    LocalReferenceHolder refs(__FUNCTION__);

    if (ctx->hidden.androidio.assetFileDescriptorRef) {
        size_t bytesMax = size * maxnum;
        if (ctx->hidden.androidio.size != -1 /*UNKNOWN_LENGTH*/ && ctx->hidden.androidio.position + bytesMax > ctx->hidden.androidio.size) {
            bytesMax = ctx->hidden.androidio.size - ctx->hidden.androidio.position;
        }
        size_t result = read(ctx->hidden.androidio.fd, buffer, bytesMax );
        if (result > 0) {
            ctx->hidden.androidio.position += result;
            return result / size;
        }
        return 0;
    } else {
        jlong bytesRemaining = (jlong) (size * maxnum);
        jlong bytesMax = (jlong) (ctx->hidden.androidio.size -  ctx->hidden.androidio.position);
        int bytesRead = 0;

        /* Don't read more bytes than those that remain in the file, otherwise we get an exception */
        if (bytesRemaining >  bytesMax) bytesRemaining = bytesMax;

        JNIEnv *mEnv = Android_JNI_GetEnv();
        if (!refs.init(mEnv)) {
            return -1;
        }

        jobject readableByteChannel = (jobject)ctx->hidden.androidio.readableByteChannelRef;
        jmethodID readMethod = (jmethodID)ctx->hidden.androidio.readMethod;
        jobject byteBuffer = mEnv->NewDirectByteBuffer(buffer, bytesRemaining);

        while (bytesRemaining > 0) {
            // result = readableByteChannel.read(...);
            int result = mEnv->CallIntMethod(readableByteChannel, readMethod, byteBuffer);

            if (Android_JNI_ExceptionOccurred()) {
                return 0;
            }

            if (result < 0) {
                break;
            }

            bytesRemaining -= result;
            bytesRead += result;
            ctx->hidden.androidio.position += result;
        }
        return bytesRead / size;
    }
}
Example #12
0
void mark(refObject object)
{ refNode P0 = r(P3);
  refNode P1 = toRefNode(object);
  refNode P2;
  int S;
  if (P1 != nil)
  { while (P1 != r(P3))
    { S = state(P1);
      if (S < degree(P1))
      { state(P1) += 1;
        P2 = refs(P1)[S];
        if (P2 != nil && state(P2) == 0)
        { refs(P1)[S] = P0;
          P0 = P1;
          P1 = P2; }}
      else
      { state(P1) = 0x7F;
        S = state(P0) - 1;
        P2 = refs(P0)[S];
        refs(P0)[S] = P1;
        P1 = P0;
        P0 = P2; }}}}
Example #13
0
extern "C" void *SDL_AndroidGetActivity()
{
    LocalReferenceHolder refs(__FUNCTION__);
    jmethodID mid;

    JNIEnv *env = Android_JNI_GetEnv();
    if (!refs.init(env)) {
        return NULL;
    }

    // return SDLActivity.getContext();
    mid = env->GetStaticMethodID(mActivityClass,
            "getContext","()Landroid/content/Context;");
    return env->CallStaticObjectMethod(mActivityClass, mid);
}
TEST_F( OpenDDLDefectsTest, Issue20_WrongColorNodeParsing ) {
    char token[] = "{0.588235, 0.588235, 0.588235}\n";
    size_t len( 0 );
    char *end = findEnd( token, len );

    Value *data( ddl_nullptr );
    Reference *refs( ddl_nullptr );
    size_t numRefs( 0 ), numValues( 0 );
    Value::ValueType type( Value::ddl_none );
    char *in = OpenDDLParser::parseDataList( token, end, type, &data, numValues, &refs, numRefs );
    ASSERT_FALSE( ddl_nullptr == in );
    ASSERT_FALSE( ddl_nullptr == data );
    ASSERT_EQ( 3U, numValues );
    delete data;
    delete refs;
}
Example #15
0
bool ViewFactory::SaveState(IMemento::Pointer memento)
{
  //  final MultiStatus result = new MultiStatus(PlatformUI.PLUGIN_ID,
  //      IStatus.OK, WorkbenchMessages.ViewFactory_problemsSavingViews, null);
  bool result = true;
  QList<IViewReference::Pointer> refs(GetViews());
  for (int i = 0; i < refs.size(); i++)
  {
    IViewDescriptor::Pointer desc = viewReg->Find(refs[i]->GetId());
    if (desc->IsRestorable())
    {
      //for dynamic UI - add the following line to replace subsequent code which is commented out
      SaveViewState(memento, refs[i], result);
    }
  }
  return result;
}
Example #16
0
void CtcQInterCoreF::contract(IntervalVector& box) {
	Array<IntervalVector> refs(list.size());

	for (int i=0; i<list.size(); i++) {
		try {
			boxes[i]=box;
			list[i].contract(boxes[i]);
		} catch(EmptyBoxException&) {
			assert(boxes[i].is_empty());
		}
		refs.set_ref(i,boxes[i]);
	}

	box = qinter_coref(refs,q);

	if (box.is_empty()) throw EmptyBoxException();
}
Example #17
0
void CtcQInter::contract(IntervalVector& box, ContractContext& context) {
	Array<IntervalVector> refs(list.size());

	for (int i=0; i<list.size(); i++) {
		boxes[i]=box;

		ContractContext c_context(boxes[i], context);

		list[i].contract(boxes[i], c_context);

		refs.set_ref(i,boxes[i]);
	}

	box = qinter(refs,q);

	context.prop.update(BoxEvent(box,BoxEvent::CONTRACT));

}
// -----------------------------------------------------------------------------
// CHttpConnHandler::Referencies
// ?implementation_description
// (other items were commented in a header).
// -----------------------------------------------------------------------------
//
TInt CHttpConnHandler::Referencies()
    {
    TInt refs( 0 );

    __ASSERT_DEBUG( iClientApp, DMPanic( KErrCorrupt ) );
    CArrayPtrFlat<CHttpDownload>* downloads = 
                                iClientApp->Downloads();

    for( TInt i = 0; i < downloads->Count(); ++i )
        {
        if( (*downloads)[i]->ConnHandler() == this )
            {
            ++refs;
            }
        }

    return refs;
    }
Example #19
0
char *OpenDDLParser::parseStructureBody( char *in, char *end, bool &error ) {
    if( !isNumeric( *in ) && !isCharacter( *in ) ) {
        ++in;
    }

    in = lookForNextToken( in, end );
    Value::ValueType type( Value::ddl_none );
    size_t arrayLen( 0 );
    in = OpenDDLParser::parsePrimitiveDataType( in, end, type, arrayLen );
    if( Value::ddl_none != type ) {
        // parse a primitive data type
        in = lookForNextToken( in, end );
        if( *in == Grammar::OpenBracketToken[ 0 ] ) {
            Reference *refs( ddl_nullptr );
            DataArrayList *dtArrayList( ddl_nullptr );
            Value *values( ddl_nullptr );
            if( 1 == arrayLen ) {
                size_t numRefs( 0 ), numValues( 0 );
                in = parseDataList( in, end, type, &values, numValues, &refs, numRefs );
                setNodeValues( top(), values );
                setNodeReferences( top(), refs );
            } else if( arrayLen > 1 ) {
                in = parseDataArrayList( in, end, type, &dtArrayList );
                setNodeDataArrayList( top(), dtArrayList );
            } else {
                std::cerr << "0 for array is invalid." << std::endl;
                error = true;
            }
        }

        in = lookForNextToken( in, end );
        if( *in != '}' ) {
            logInvalidTokenError( in, std::string( Grammar::CloseBracketToken ), m_logCallback );
            return ddl_nullptr;
        } else {
            //in++;
        }
    } else {
        // parse a complex data type
        in = parseNextNode( in, end );
    }

    return in;
}
Example #20
0
extern "C" const char * SDL_AndroidGetExternalStoragePath()
{
    static char *s_AndroidExternalFilesPath = NULL;

    if (!s_AndroidExternalFilesPath) {
        LocalReferenceHolder refs(__FUNCTION__);
        jmethodID mid;
        jobject context;
        jobject fileObject;
        jstring pathString;
        const char *path;

        JNIEnv *env = Android_JNI_GetEnv();
        if (!refs.init(env)) {
            return NULL;
        }

        // context = SDLActivity.getContext();
        mid = env->GetStaticMethodID(mActivityClass,
                "getContext","()Landroid/content/Context;");
        context = env->CallStaticObjectMethod(mActivityClass, mid);

        // fileObj = context.getExternalFilesDir();
        mid = env->GetMethodID(env->GetObjectClass(context),
                "getExternalFilesDir", "(Ljava/lang/String;)Ljava/io/File;");
        fileObject = env->CallObjectMethod(context, mid, NULL);
        if (!fileObject) {
            SDL_SetError("Couldn't get external directory");
            return NULL;
        }

        // path = fileObject.getAbsolutePath();
        mid = env->GetMethodID(env->GetObjectClass(fileObject),
                "getAbsolutePath", "()Ljava/lang/String;");
        pathString = (jstring)env->CallObjectMethod(fileObject, mid);

        path = env->GetStringUTFChars(pathString, NULL);
        s_AndroidExternalFilesPath = SDL_strdup(path);
        env->ReleaseStringUTFChars(pathString, path);
    }
    return s_AndroidExternalFilesPath;
}
Example #21
0
char *OpenDDLParser::parseDataArrayList( char *in, char *end,Value::ValueType type, 
                                         DataArrayList **dataArrayList ) {
    if ( ddl_nullptr == dataArrayList ) {
        return in;
    }

    *dataArrayList = ddl_nullptr;
    if( ddl_nullptr == in || in == end ) {
        return in;
    }

    in = lookForNextToken( in, end );
    if( *in == Grammar::OpenBracketToken[ 0 ] ) {
        ++in;
        Value *currentValue( ddl_nullptr );
        Reference *refs( ddl_nullptr );
        DataArrayList *prev( ddl_nullptr ), *currentDataList( ddl_nullptr );
        do {
            size_t numRefs( 0 ), numValues( 0 );
            currentValue = ddl_nullptr;

            in = parseDataList( in, end, type, &currentValue, numValues, &refs, numRefs );
            if( ddl_nullptr != currentValue || 0 != numRefs ) {
                if( ddl_nullptr == prev ) {
                    *dataArrayList = createDataArrayList( currentValue, numValues, refs, numRefs );
                    prev = *dataArrayList;
                } else {
                    currentDataList = createDataArrayList( currentValue, numValues, refs, numRefs );
                    if( ddl_nullptr != prev ) {
                        prev->m_next = currentDataList;
                        prev = currentDataList;
                    }
                }
            }
        } while( Grammar::CommaSeparator[ 0 ] == *in && in != end );
        in = lookForNextToken( in, end );
        ++in;
    }

    return in;
}
Example #22
0
TEST_P(Test_TensorFlow_nets, MobileNet_SSD)
{
    checkBackend();
    if ((backend == DNN_BACKEND_INFERENCE_ENGINE && target != DNN_TARGET_CPU) ||
        (backend == DNN_BACKEND_OPENCV && target == DNN_TARGET_OPENCL_FP16))
        throw SkipTestException("");

    std::string netPath = findDataFile("dnn/ssd_mobilenet_v1_coco.pb", false);
    std::string netConfig = findDataFile("dnn/ssd_mobilenet_v1_coco.pbtxt", false);
    std::string imgPath = findDataFile("dnn/street.png", false);

    Mat inp;
    resize(imread(imgPath), inp, Size(300, 300));
    inp = blobFromImage(inp, 1.0f / 127.5, Size(), Scalar(127.5, 127.5, 127.5), true);

    std::vector<String> outNames(3);
    outNames[0] = "concat";
    outNames[1] = "concat_1";
    outNames[2] = "detection_out";

    std::vector<Mat> refs(outNames.size());
    for (int i = 0; i < outNames.size(); ++i)
    {
        std::string path = findDataFile("dnn/tensorflow/ssd_mobilenet_v1_coco." + outNames[i] + ".npy", false);
        refs[i] = blobFromNPY(path);
    }

    Net net = readNetFromTensorflow(netPath, netConfig);
    net.setPreferableBackend(backend);
    net.setPreferableTarget(target);

    net.setInput(inp);

    std::vector<Mat> output;
    net.forward(output, outNames);

    normAssert(refs[0].reshape(1, 1), output[0].reshape(1, 1), "", 1e-5, 1.5e-4);
    normAssert(refs[1].reshape(1, 1), output[1].reshape(1, 1), "", 1e-5, 3e-4);
    normAssertDetections(refs[2], output[2], "", 0.2);
}
Example #23
0
// returns a new global reference which needs to be released later
static jobject Android_JNI_GetSystemServiceObject(const char* name)
{
    LocalReferenceHolder refs(__FUNCTION__);
    JNIEnv* env = Android_JNI_GetEnv();
    if (!refs.init(env)) {
        return NULL;
    }

    jstring service = env->NewStringUTF(name);

    jmethodID mid;

    mid = env->GetStaticMethodID(mActivityClass, "getContext", "()Landroid/content/Context;");
    jobject context = env->CallStaticObjectMethod(mActivityClass, mid);

    mid = env->GetMethodID(mActivityClass, "getSystemService", "(Ljava/lang/String;)Ljava/lang/Object;");
    jobject manager = env->CallObjectMethod(context, mid, service);

    env->DeleteLocalRef(service);

    return manager ? env->NewGlobalRef(manager) : NULL;
}
Example #24
0
Data::NmrReference const* Nmr::currentReference()
{
   Data::NmrReference const* reference;

   QString isotope(currentIsotope());
   QString system(m_ui->systemCombo->currentText());
   QString method(m_ui->methodCombo->currentText());

   Data::NmrReferenceLibrary& library(Data::NmrReferenceLibrary::instance());
   QList<Data::NmrReference const*> refs(library.filter(isotope, system, method));

   if (refs.size() == 1) {
      reference = refs.first();
      //qDebug() << "Found reference:";
      //reference->dump();
   }else {
      reference = 0;
//qDebug() << "No reference found for" << isotope << system << method;
   }

   return reference;
}
Example #25
0
void Nmr::on_systemCombo_currentIndexChanged(QString const& text)
{
   QString isotope(currentIsotope());

   Data::NmrReferenceLibrary& library(Data::NmrReferenceLibrary::instance());
   QString method(m_data.method());
   QList<Data::NmrReference const*> refs(library.filter(isotope, text, method));

   QStringList methods;
   QList<Data::NmrReference const*>::iterator iter;
   for (iter = refs.begin(); iter != refs.end(); ++iter) {
       method = (*iter)->method();
       if (!methods.contains(method)) methods.append(method);
   }

   QComboBox* combo(m_ui->methodCombo);
   combo->clear();
   combo->addItems(methods);

   loadShifts(currentReference(), isotope);
   updatePlot();
}
Example #26
0
extern "C" int Android_JNI_FileOpen(SDL_RWops* ctx,
        const char* fileName, const char*)
{
    LocalReferenceHolder refs(__FUNCTION__);
    JNIEnv *mEnv = Android_JNI_GetEnv();

    if (!refs.init(mEnv)) {
        return -1;
    }

    if (!ctx) {
        return -1;
    }

    jstring fileNameJString = mEnv->NewStringUTF(fileName);
    ctx->hidden.androidio.fileNameRef = mEnv->NewGlobalRef(fileNameJString);
    ctx->hidden.androidio.inputStreamRef = NULL;
    ctx->hidden.androidio.readableByteChannelRef = NULL;
    ctx->hidden.androidio.readMethod = NULL;

    return Android_JNI_FileOpen(ctx);
}
Example #27
0
extern "C" int SDL_AndroidGetExternalStorageState()
{
    LocalReferenceHolder refs(__FUNCTION__);
    jmethodID mid;
    jclass cls;
    jstring stateString;
    const char *state;
    int stateFlags;

    JNIEnv *env = Android_JNI_GetEnv();
    if (!refs.init(env)) {
        return 0;
    }

    cls = env->FindClass("android/os/Environment");
    mid = env->GetStaticMethodID(cls,
            "getExternalStorageState", "()Ljava/lang/String;");
    stateString = (jstring)env->CallStaticObjectMethod(cls, mid);

    state = env->GetStringUTFChars(stateString, NULL);

    // Print an info message so people debugging know the storage state
    __android_log_print(ANDROID_LOG_INFO, "SDL", "external storage state: %s", state);

    if (SDL_strcmp(state, "mounted") == 0) {
        stateFlags = SDL_ANDROID_EXTERNAL_STORAGE_READ |
                     SDL_ANDROID_EXTERNAL_STORAGE_WRITE;
    } else if (SDL_strcmp(state, "mounted_ro") == 0) {
        stateFlags = SDL_ANDROID_EXTERNAL_STORAGE_READ;
    } else {
        stateFlags = 0;
    }
    env->ReleaseStringUTFChars(stateString, state);

    return stateFlags;
}
void
ApplicationTypesWindow::MessageReceived(BMessage* message)
{
	switch (message->what) {
		case kMsgTypeSelected:
		{
			int32 index;
			if (message->FindInt32("index", &index) == B_OK) {
				MimeTypeItem* item = (MimeTypeItem*)fTypeListView->ItemAt(index);
				if (item != NULL) {
					BMimeType type(item->Type());
					_SetType(&type);
				} else
					_SetType(NULL);
			}
			break;
		}

		case kMsgTypeInvoked:
		{
			int32 index;
			if (message->FindInt32("index", &index) == B_OK) {
				MimeTypeItem* item = (MimeTypeItem*)fTypeListView->ItemAt(index);
				if (item != NULL) {
					BMimeType type(item->Type());
					entry_ref ref;
					if (type.GetAppHint(&ref) == B_OK) {
						BMessage refs(B_REFS_RECEIVED);
						refs.AddRef("refs", &ref);

						be_app->PostMessage(&refs);
					}
				}
			}
			break;
		}

		case kMsgEdit:
			fTypeListView->Invoke();
			break;

		case kMsgRemoveUninstalled:
			_RemoveUninstalled();
			break;

		case B_META_MIME_CHANGED:
		{
			const char* type;
			int32 which;
			if (message->FindString("be:type", &type) != B_OK
				|| message->FindInt32("be:which", &which) != B_OK) {
				break;
			}

			if (fCurrentType.Type() == NULL)
				break;

			if (!strcasecmp(fCurrentType.Type(), type)) {
				if (which != B_MIME_TYPE_DELETED)
					_SetType(&fCurrentType, which);
				else
					_SetType(NULL);
			}
			break;
		}

		default:
			BWindow::MessageReceived(message);
	}
}
Example #29
0
void WatcherData::perform(void* thread)
{
    WatcherData* watcher = static_cast<WatcherData*>(thread);
    std::unique_lock<std::mutex> locker(watcher->mutex);
    if (watcher->flags & Stop) {
        if (watcher->fss) {
            FSEventStreamStop(watcher->fss);
            FSEventStreamInvalidate(watcher->fss);
        }
        CFRunLoopSourceInvalidate(watcher->source);
        CFRunLoopStop(watcher->loop);
        return;
    } else if (watcher->flags & Clear) {
        watcher->flags &= ~Clear;

        if (watcher->fss) {
            FSEventStreamStop(watcher->fss);
            FSEventStreamInvalidate(watcher->fss);
            watcher->fss = 0;
        }

        // We might have paths added since the clear operation was inititated
        if (watcher->paths.empty())
            return;
    }

    // ### might make sense to have multiple streams instead of recreating one for each change
    // ### and then merge them if the stream count reaches a given treshold

    const int pathSize = watcher->paths.size();
    FSEventStreamRef newfss = 0;

    if (pathSize) {
        StackBuffer<1024, CFStringRef> refs(pathSize);
        int i = 0;
        const Set<Path> copy = watcher->paths;
        for (const Path &path : copy) {
            refs[i++] = CFStringCreateWithCStringNoCopy(kCFAllocatorDefault,
                                                        path.constData(),
                                                        kCFStringEncodingUTF8,
                                                        kCFAllocatorNull);
        }

        // don't need to hold the mutex beyond this point
        locker.unlock();

        CFArrayRef list = CFArrayCreate(kCFAllocatorDefault,
                                        reinterpret_cast<const void**>(&refs[0]),
                                        pathSize,
                                        &kCFTypeArrayCallBacks);

        for (int j = 0; j < i; ++j)
            CFRelease(refs[j]);

        FSEventStreamContext ctx = { 0, watcher, 0, 0, 0 };
        newfss = FSEventStreamCreate(kCFAllocatorDefault,
                                     notifyCallback,
                                     &ctx,
                                     list,
                                     watcher->since,
                                     .1,
                                     kFSEventStreamCreateFlagIgnoreSelf
                                     | kFSEventStreamCreateFlagFileEvents
                                     );

        CFRelease(list);
    }

    if (!newfss)
        return;

    if (watcher->fss) {
        FSEventStreamStop(watcher->fss);
        FSEventStreamInvalidate(watcher->fss);
    }

    watcher->fss = newfss;

    FSEventStreamScheduleWithRunLoop(watcher->fss, watcher->loop, kCFRunLoopDefaultMode);
    FSEventStreamStart(watcher->fss);
}
Example #30
0
void reclaimSizedHunks()
{ int          count;
  refHunk      lastHunk;
  refHeap      nextHeap;
  refHunk      nextHunk;
  refFrame     nextFrame;
  refRefObject refsStart;
  int          size;
  int          total;

//  Mark protected global variables.

  mark(bases);
  mark(cellSimple);
  mark(characterZero);
  mark(countName);
  mark(emptyAlts);
  mark(emptyClosure);
  mark(emptyString);
  mark(fakeCall);
  mark(firstProc);
  mark(formCall);
  mark(integerOne);
  mark(integerMinusOne);
  mark(integerZero);
  mark(lastProc);
  mark(layers);
  mark(linkName);
  mark(markable);
  mark(markingName);
  mark(toRefObject(matches));
  mark(nullSimple);
  mark(plainLayer);
  mark(realZero);
  mark(resultName);
  mark(rowChar0);
  mark(rowRowChar0);
  mark(rowVoid);
  mark(rowVoidExternal);
  mark(skolemLayer);
  mark(symNoName);
  mark(typeExeJoker);
  mark(typeFojJoker);
  mark(typeMutJoker);
  mark(typeObjJoker);
  mark(typeTypeObjJoker);
  mark(typeSymNoName);
  mark(typeVoid);
  mark(typeTypeVoid);
  mark(vajJoker);
  mark(voidExternal);

//  Mark stack frames.

  nextFrame = frames;
  while (nextFrame != nil)
  { count = count(nextFrame);
    refsStart = refs(nextFrame);
    while (count > 0)
    { mark(d(refsStart));
      count -= 1;
      refsStart += 1; }
    nextFrame = link(nextFrame); }

//  Make a pass through the chain of heaps, looking at every hunk. If we find a
//  hunk whose TAG is HUNK TAG, then we skip it, because it's already in a free
//  list somewhere. If we find a marked hunk, then we simply unmark it, because
//  it's still in use. If we find an unmarked hunk, then it's not in use, so we
//  reset its TAG to HUNK TAG, and add it to the appropriate free list in SIZED
//  HUNKS.

  total = 0;
  nextHeap = heaps;
  while (nextHeap != nil)
  { nextHunk = toRefHunk(hunks(nextHeap) + hunkSize);
    lastHunk = r(lastHunk(nextHeap));
    while (nextHunk != lastHunk)
    { if (isHunk(nextHunk))
      { nextHunk = toRefHunk(toRefChar(nextHunk) + space(nextHunk)); }
      else
      { size = size(nextHunk);
        if (state(nextHunk) == 0)
        { tag(nextHunk) = hunkTag;
          space(nextHunk) = size;
          next(nextHunk) = sizedHunks[size];
          sizedHunks[size] = nextHunk;
          total += size; }
        else
        { state(nextHunk) = 0; }
        nextHunk = toRefHunk(toRefChar(nextHunk) + size); }}
    nextHeap = next(nextHeap); }

//  Write optional debugging information.

  if (maxDebugLevel >= 0)
  { fprintf(stream(debug), "[0] Reclaimed %i bytes\n", total); }}