Отсутствует возврат между #endif
и }
.
Но в нижней части функции есть возвращаемое слово.
Нет, нет return
.
Ниже приводится один большой комментарий с #if 0
#if 0
if (!ToolsCore_LoadPlugins(state)) {
return 1;
}
#if defined(__linux__)
if (state->mainService) {
ToolsCore_InitVsockFamily(state);
}
#endif
if (state->ctx.errorCode == 0 &&
(state->ctx.isVMware ||
ToolsCore_GetTcloName(state) == NULL ||
state->debugPlugin != NULL)) {
ToolsCore_RegisterPlugins(state);
if (g_signal_lookup(TOOLS_CORE_SIG_IO_FREEZE,
G_OBJECT_TYPE(state->ctx.serviceObj)) != 0) {
g_signal_connect(state->ctx.serviceObj,
TOOLS_CORE_SIG_IO_FREEZE,
G_CALLBACK(ToolsCoreIOFreezeCb),
state);
}
state->configCheckTask = g_timeout_add(CONF_POLL_TIME * 1000,
ToolsCoreConfFileCb,
state);
#if defined(__APPLE__)
ToolsCore_CFRunLoop(state);
#else
g_main_loop_run(state->ctx.mainLoop);
#endif
}
ToolsCoreCleanup(state);
return state->ctx.errorCode;
#endif
Лучшее форматирование покажет все яснее.
static int ToolsCoreRunLoop(ToolsServiceState *state) {
if (!ToolsCore_InitRpc(state)) {
return 1;
}
if (state->ctx.rpc && !RpcChannel_Start(state->ctx.rpc)) {
return 1;
}
if (state->ctx.rpc) {
ToolsCoreReportVersionData(state);
}
//return 0; Here is what I add
#if 0
if (!ToolsCore_LoadPlugins(state)) {
return 1;
}
#if defined(__linux__)
if (state->mainService) {
ToolsCore_InitVsockFamily(state);
}
#endif
if (state->ctx.errorCode == 0 &&
(state->ctx.isVMware ||
ToolsCore_GetTcloName(state) == NULL ||
state->debugPlugin != NULL)) {
ToolsCore_RegisterPlugins(state);
if (g_signal_lookup(TOOLS_CORE_SIG_IO_FREEZE,
G_OBJECT_TYPE(state->ctx.serviceObj)) != 0) {
g_signal_connect(state->ctx.serviceObj,
TOOLS_CORE_SIG_IO_FREEZE,
G_CALLBACK(ToolsCoreIOFreezeCb),
state);
}
state->configCheckTask = g_timeout_add(CONF_POLL_TIME * 1000,
ToolsCoreConfFileCb,
state);
#if defined(__APPLE__)
ToolsCore_CFRunLoop(state);
#else
g_main_loop_run(state->ctx.mainLoop);
#endif
}
ToolsCoreCleanup(state);
return state->ctx.errorCode;
#endif
// Missing return
}