Handle fatal errors for bccRegisterSymbolCallback.
Change-Id: Ifc4e076628c510aee184857e0f8b9df346ad93d7
diff --git a/lib/bcc/Script.cpp b/lib/bcc/Script.cpp
index f539cc0..ac74118 100644
--- a/lib/bcc/Script.cpp
+++ b/lib/bcc/Script.cpp
@@ -457,14 +457,16 @@
}
-void Script::registerSymbolCallback(BCCSymbolLookupFn pFn, void *pContext) {
+int Script::registerSymbolCallback(BCCSymbolLookupFn pFn, void *pContext) {
mpExtSymbolLookupFn = pFn;
mpExtSymbolLookupFnContext = pContext;
if (mStatus != ScriptStatus::Unknown) {
mErrorCode = BCC_INVALID_OPERATION;
LOGE("Invalid operation: %s\n", __func__);
+ return 1;
}
+ return 0;
}
} // namespace bcc
diff --git a/lib/bcc/Script.h b/lib/bcc/Script.h
index b996a32..a5ba058 100644
--- a/lib/bcc/Script.h
+++ b/lib/bcc/Script.h
@@ -126,7 +126,7 @@
void getFuncInfoList(size_t size, FuncInfo *list);
- void registerSymbolCallback(BCCSymbolLookupFn pFn, void *pContext);
+ int registerSymbolCallback(BCCSymbolLookupFn pFn, void *pContext);
char *getContext();
diff --git a/lib/bcc/bcc.cpp b/lib/bcc/bcc.cpp
index 696b20b..294842b 100644
--- a/lib/bcc/bcc.cpp
+++ b/lib/bcc/bcc.cpp
@@ -68,9 +68,9 @@
delete unwrap(script);
}
-extern "C" void bccRegisterSymbolCallback(BCCScriptRef script,
- BCCSymbolLookupFn pFn,
- void *pContext) {
+extern "C" int bccRegisterSymbolCallback(BCCScriptRef script,
+ BCCSymbolLookupFn pFn,
+ void *pContext) {
BCC_FUNC_LOGGER();
return unwrap(script)->registerSymbolCallback(pFn, pContext);
}