Fix several bugs.

1. Incorrect string pool offset calculation.
2. Move the sha1 checksum calculation code forward.
3. Assign file to mFile (in order to share with different method).
diff --git a/lib/bcc/CacheReader.cpp b/lib/bcc/CacheReader.cpp
index ddb0258..8700eb9 100644
--- a/lib/bcc/CacheReader.cpp
+++ b/lib/bcc/CacheReader.cpp
@@ -57,6 +57,8 @@
     return NULL;
   }
 
+  mFile = file;
+
   // Allocate ScriptCached object
   mpResult.reset(new (nothrow) ScriptCached(S));
 
@@ -103,12 +105,6 @@
     return false;
   }
 
-  // Dirty hack for libRS.
-  // TODO(all): This should be removed in the future.
-  if (mpHeader->libRS_threadable) {
-    mpResult->mLibRSThreadable = true;
-  }
-
   return true;
 }
 
@@ -131,6 +127,12 @@
     return false;
   }
 
+  // Dirty hack for libRS.
+  // TODO(all): This should be removed in the future.
+  if (mpHeader->libRS_threadable) {
+    mpResult->mLibRSThreadable = true;
+  }
+
   return true;
 }
 
@@ -196,7 +198,7 @@
 
   CHECK_SECTION_OFFSET(str_pool);
   CHECK_SECTION_OFFSET(depend_tab);
-  CHECK_SECTION_OFFSET(reloc_tab);
+  //CHECK_SECTION_OFFSET(reloc_tab);
   CHECK_SECTION_OFFSET(export_var_list);
   CHECK_SECTION_OFFSET(export_func_list);
   CHECK_SECTION_OFFSET(pragma_list);