Redesign libbcc api.
diff --git a/lib/bcc/CacheWriter.cpp b/lib/bcc/CacheWriter.cpp
index a0b5da2..6d3a104 100644
--- a/lib/bcc/CacheWriter.cpp
+++ b/lib/bcc/CacheWriter.cpp
@@ -162,21 +162,16 @@
   tab->count = static_cast<size_t>(funcCount);
 
   // Get the function informations
-  vector<char const *> funcNameList(funcCount);
-  mpOwner->getFuncNameList(funcCount, &*funcNameList.begin());
+  vector<FuncInfo> funcInfoList(funcCount);
+  mpOwner->getFuncInfoList(funcCount, &*funcInfoList.begin());
 
   for (size_t i = 0; i < funcCount; ++i) {
-    char const *funcName = funcNameList[i];
-    size_t funcNameLen = strlen(funcName);
+    FuncInfo *info = &funcInfoList[i];
+    OBCC_FuncInfo *outputInfo = &tab->table[i];
 
-    void *funcAddr = NULL;
-    size_t funcBinarySize = 0;
-    mpOwner->getFuncBinary(funcName, &funcAddr, &funcBinarySize);
-
-    OBCC_FuncInfo *funcInfo = &tab->table[i];
-    funcInfo->name_strp_index = addString(funcName, funcNameLen);
-    funcInfo->cached_addr = funcAddr;
-    funcInfo->size = static_cast<size_t>(funcBinarySize);
+    outputInfo->name_strp_index = addString(info->name, strlen(info->name));
+    outputInfo->cached_addr = info->addr;
+    outputInfo->size = info->size;
   }
 
   return true;