Add bccPrepareSharedObject
Unlike bccPrepareExecuteable, bccPrepareSharedObject does not
resolve external symbols; therefore it only generate cache file
not execuable.
Change-Id: I3ef093015a4f54011fbf298123cac2464230b408
diff --git a/lib/ExecutionEngine/MCCacheReader.cpp b/lib/ExecutionEngine/MCCacheReader.cpp
index 82b7cdc..39e567f 100644
--- a/lib/ExecutionEngine/MCCacheReader.cpp
+++ b/lib/ExecutionEngine/MCCacheReader.cpp
@@ -54,9 +54,24 @@
ScriptCached *MCCacheReader::readCacheFile(FileHandle *objFile,
FileHandle *infoFile,
Script *S) {
+ bool result = checkCacheFile(objFile, infoFile, S)
+ && readPragmaList()
+ && readObjectSlotList()
+ && readObjFile()
+ && readVarNameList()
+ && readFuncNameList()
+ //&& relocate()
+ ;
+
+ return result ? mpResult.take() : NULL;
+}
+
+bool MCCacheReader::checkCacheFile(FileHandle *objFile,
+ FileHandle *infoFile,
+ Script *S) {
// Check file handle
if (!objFile || objFile->getFD() < 0 || !infoFile || infoFile->getFD() < 0) {
- return NULL;
+ return false;
}
mObjFile = objFile;
@@ -67,7 +82,7 @@
if (!mpResult) {
LOGE("Unable to allocate ScriptCached object.\n");
- return NULL;
+ return false;
}
bool result = checkFileSize()
@@ -79,15 +94,9 @@
&& checkStringPool()
&& readDependencyTable()
&& checkDependency()
- && readPragmaList()
- && readObjectSlotList()
- && readObjFile()
- && readVarNameList()
- && readFuncNameList()
- //&& relocate()
;
- return result ? mpResult.take() : NULL;
+ return result;
}