Merge "Fix Old JIT Disassembler"
diff --git a/bcinfo/Android.mk b/bcinfo/Android.mk
index a91d9be..68be85f 100644
--- a/bcinfo/Android.mk
+++ b/bcinfo/Android.mk
@@ -21,6 +21,14 @@
 
 LOCAL_PATH := $(call my-dir)
 
+libbcinfo_SRC_FILES := bcinfo.cpp
+libbcinfo_C_INCLUDES := $(LOCAL_PATH)/../include
+libbcinfo_STATIC_LIBRARIES := \
+  libLLVMBitReader \
+  libLLVMBitWriter \
+  libLLVMCore \
+  libLLVMSupport \
+
 LLVM_ROOT_PATH := external/llvm
 
 include $(CLEAR_VARS)
@@ -30,20 +38,36 @@
 LOCAL_MODULE_TAGS := optional
 intermediates := $(local-intermediates-dir)
 
-LOCAL_SRC_FILES := bcinfo.cpp
+LOCAL_SRC_FILES := $(libbcinfo_SRC_FILES)
 
 LOCAL_CFLAGS += $(local_cflags_for_libbcinfo)
 
-LOCAL_C_INCLUDES := \
-  $(LOCAL_PATH)/../include
+LOCAL_C_INCLUDES := $(libbcinfo_C_INCLUDES)
 
-LOCAL_STATIC_LIBRARIES += \
-  libLLVMBitReader \
-  libLLVMBitWriter \
-  libLLVMCore \
-  libLLVMSupport \
-
+LOCAL_STATIC_LIBRARIES := $(libbcinfo_STATIC_LIBRARIES)
 LOCAL_SHARED_LIBRARIES := libcutils libstlport
 
 include $(LLVM_ROOT_PATH)/llvm-device-build.mk
 include $(BUILD_SHARED_LIBRARY)
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := libbcinfo
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_TAGS := optional
+LOCAL_IS_HOST_MODULE := true
+
+LOCAL_SRC_FILES := $(libbcinfo_SRC_FILES)
+
+LOCAL_CFLAGS += $(local_cflags_for_libbcinfo)
+
+LOCAL_C_INCLUDES := $(libbcinfo_C_INCLUDES)
+
+LOCAL_STATIC_LIBRARIES += $(libbcinfo_STATIC_LIBRARIES)
+LOCAL_STATIC_LIBRARIES += libcutils
+
+LOCAL_LDLIBS := -ldl -lpthread
+
+include $(LLVM_ROOT_PATH)/llvm-host-build.mk
+include $(BUILD_HOST_SHARED_LIBRARY)
+
diff --git a/include/bcc/bcc.h b/include/bcc/bcc.h
index b357cf3..3e3a59e 100644
--- a/include/bcc/bcc.h
+++ b/include/bcc/bcc.h
@@ -26,18 +26,6 @@
 typedef struct BCCOpaqueScript *BCCScriptRef;
 
 
-/* Function information struct */
-struct BCCFuncInfo {
-  char const *name;
-  void *addr;
-  size_t size;
-};
-
-#if !defined(__cplusplus)
-typedef struct BCCFuncInfo BCCFuncInfo;
-#endif
-
-
 /* Symbol lookup function type */
 typedef void *(*BCCSymbolLookupFn)(void *context, char const *symbolName);
 
@@ -119,39 +107,14 @@
 
 void *bccGetFuncAddr(BCCScriptRef script, char const *funcname);
 
-
-
-size_t bccGetExportVarCount(BCCScriptRef script);
-
 void bccGetExportVarList(BCCScriptRef script,
                          size_t varListSize,
                          void **varList);
 
-size_t bccGetExportFuncCount(BCCScriptRef script);
-
 void bccGetExportFuncList(BCCScriptRef script,
                           size_t funcListSize,
                           void **funcList);
 
-size_t bccGetPragmaCount(BCCScriptRef script);
-
-void bccGetPragmaList(BCCScriptRef script,
-                      size_t pragmaListSize,
-                      char const **keyList,
-                      char const **valueList);
-
-size_t bccGetFuncCount(BCCScriptRef script);
-
-void bccGetFuncInfoList(BCCScriptRef script,
-                        size_t funcInfoListSize,
-                        BCCFuncInfo *funcInfoList);
-
-size_t bccGetObjectSlotCount(BCCScriptRef script);
-
-void bccGetObjectSlotList(BCCScriptRef script,
-                          size_t objectSlotListSize,
-                          uint32_t *objectSlotList);
-
 char const *bccGetBuildTime();
 
 char const *bccGetBuildRev();
diff --git a/lib/ExecutionEngine/bcc.cpp b/lib/ExecutionEngine/bcc.cpp
index fef4ce8..1d2bc8f 100644
--- a/lib/ExecutionEngine/bcc.cpp
+++ b/lib/ExecutionEngine/bcc.cpp
@@ -152,12 +152,6 @@
 }
 
 
-extern "C" size_t bccGetExportVarCount(BCCScriptRef script) {
-  BCC_FUNC_LOGGER();
-  return unwrap(script)->getExportVarCount();
-}
-
-
 extern "C" void bccGetExportVarList(BCCScriptRef script,
                                     size_t varListSize,
                                     void **varList) {
@@ -182,12 +176,6 @@
 }
 
 
-extern "C" size_t bccGetExportFuncCount(BCCScriptRef script) {
-  BCC_FUNC_LOGGER();
-  return unwrap(script)->getExportFuncCount();
-}
-
-
 extern "C" void bccGetExportFuncList(BCCScriptRef script,
                                      size_t funcListSize,
                                      void **funcList) {
@@ -211,79 +199,3 @@
   }
 }
 
-
-extern "C" size_t bccGetPragmaCount(BCCScriptRef script) {
-  BCC_FUNC_LOGGER();
-  return unwrap(script)->getPragmaCount();
-}
-
-
-extern "C" void bccGetPragmaList(BCCScriptRef script,
-                                 size_t pragmaListSize,
-                                 const char **keyList,
-                                 const char **valueList) {
-  BCC_FUNC_LOGGER();
-  unwrap(script)->getPragmaList(pragmaListSize, keyList, valueList);
-
-#if DEBUG_BCC_REFLECT
-  if (keyList && valueList) {
-    size_t count = unwrap(script)->getPragmaCount();
-    LOGD("PragmaCount = %lu\n", (unsigned long)count);
-
-    if (count > pragmaListSize) {
-      count = pragmaListSize;
-    }
-
-    for (size_t i = 0; i < count; ++i) {
-      LOGD("Pragma[%lu] = (%s , %s)\n",
-           (unsigned long)i, keyList[i], valueList[i]);
-    }
-  }
-#endif
-}
-
-
-extern "C" size_t bccGetFuncCount(BCCScriptRef script) {
-  BCC_FUNC_LOGGER();
-  return unwrap(script)->getFuncCount();
-}
-
-
-extern "C" void bccGetFuncInfoList(BCCScriptRef script,
-                                   size_t funcInfoListSize,
-                                   BCCFuncInfo *funcInfoList) {
-  BCC_FUNC_LOGGER();
-
-  if (funcInfoList) {
-    unwrap(script)->getFuncInfoList(funcInfoListSize, funcInfoList);
-  }
-}
-
-
-extern "C" size_t bccGetObjectSlotCount(BCCScriptRef script) {
-  BCC_FUNC_LOGGER();
-  return unwrap(script)->getObjectSlotCount();
-}
-
-
-extern "C" void bccGetObjectSlotList(BCCScriptRef script,
-                                     size_t objectSlotListSize,
-                                     uint32_t *objectSlotList) {
-  BCC_FUNC_LOGGER();
-
-  if (objectSlotList) {
-    unwrap(script)->getObjectSlotList(objectSlotListSize, objectSlotList);
-#if DEBUG_BCC_REFLECT
-    size_t count = unwrap(script)->getObjectSlotCount();
-    LOGD("ObjectSlotCount = %lu\n", (unsigned long)count);
-
-    if (count > objectSlotListSize) {
-      count = objectSlotListSize;
-    }
-
-    for (size_t i = 0; i < count; ++i) {
-      LOGD("ObjectSlotList[%lu] = %d\n", (unsigned long)i, objectSlotList[i]);
-    }
-#endif
-  }
-}
diff --git a/lib/ExecutionEngine/bcc_internal.h b/lib/ExecutionEngine/bcc_internal.h
index af1b647..d0f5766 100644
--- a/lib/ExecutionEngine/bcc_internal.h
+++ b/lib/ExecutionEngine/bcc_internal.h
@@ -37,8 +37,12 @@
 namespace bcc {
   class Script;
 
-  // Alias BCCFuncInfo to bcc::FuncInfo
-  typedef struct BCCFuncInfo FuncInfo;
+  /* Function information struct */
+  struct FuncInfo {
+    char const *name;
+    void *addr;
+    size_t size;
+  };
 
   BCC_OPAQUE_TYPE_CONVERSION(bcc::Script *, BCCScriptRef);
   BCC_OPAQUE_TYPE_CONVERSION(llvm::Module *, LLVMModuleRef);
diff --git a/tests/Android.mk b/tests/Android.mk
index 01475d7..5696469 100644
--- a/tests/Android.mk
+++ b/tests/Android.mk
@@ -47,7 +47,7 @@
   main.cpp \
   disassem.cpp
 
-LOCAL_SHARED_LIBRARIES := libdl libstlport libbcc
+LOCAL_SHARED_LIBRARIES := libdl libstlport libbcinfo libbcc
 
 LOCAL_C_INCLUDES := \
   bionic \
diff --git a/tests/main.cpp b/tests/main.cpp
index cb228ca..eddeaa1 100644
--- a/tests/main.cpp
+++ b/tests/main.cpp
@@ -73,6 +73,7 @@
 }
 
 static int disassemble(BCCScriptRef script, FILE* out) {
+  /* Removed by srhines
   disasmOut = out;
   disasm_interface_t  di;
   di.di_readword = disassemble_readword;
@@ -101,6 +102,7 @@
     }
     delete [] infos;
   }
+  */
 
   return 1;
 }
@@ -209,6 +211,7 @@
 }
 
 static void printPragma(BCCScriptRef script) {
+/* Removed by srhines
   size_t numPragma = bccGetPragmaCount(script);
   if (numPragma) {
     char const ** keyList = new char const *[numPragma];
@@ -222,6 +225,7 @@
     delete [] keyList;
     delete [] valueList;
   }
+*/
 }
 
 static int runMain(BCCScriptRef script, int argc, char** argv) {