Esempio n. 1
0
extern "C" LLVMRustArchiveIteratorRef
LLVMRustArchiveIteratorNew(LLVMRustArchiveRef RustArchive) {
  Archive *Archive = RustArchive->getBinary();
  RustArchiveIterator *RAI = new RustArchiveIterator();
  RAI->Cur = Archive->child_begin(RAI->Err);
  if (RAI->Err) {
    LLVMRustSetLastError(toString(std::move(RAI->Err)).c_str());
    delete RAI;
    return nullptr;
  }
  RAI->End = Archive->child_end();
  return RAI;
}
Esempio n. 2
0
extern "C" LLVMRustArchiveIteratorRef
LLVMRustArchiveIteratorNew(LLVMRustArchiveRef ra) {
    Archive *ar = ra->getBinary();
    RustArchiveIterator *rai = new RustArchiveIterator();
#if LLVM_VERSION_LE(3, 8)
    rai->cur = ar->child_begin();
#else
    rai->cur = ar->child_begin(rai->err);
    if (rai->err) {
        LLVMRustSetLastError(toString(std::move(rai->err)).c_str());
        return NULL;
    }
#endif
    rai->end = ar->child_end();
    return rai;
}