diff --git a/adb/client/fastdeploy.cpp b/adb/client/fastdeploy.cpp index 45f3cca90..e82f15a7d 100644 --- a/adb/client/fastdeploy.cpp +++ b/adb/client/fastdeploy.cpp @@ -228,11 +228,12 @@ void extract_metadata(const char* apkPath, FILE* outputFp) { android::base::StringPrintf(kAgentExtractCommandPattern, packageName.c_str()); std::vector extractErrorBuffer; - int statusCode; - DeployAgentFileCallback cb(outputFp, &extractErrorBuffer, &statusCode); + DeployAgentFileCallback cb(outputFp, &extractErrorBuffer); int returnCode = send_shell_command(extractCommand, false, &cb); if (returnCode != 0) { - error_exit("Executing %s returned %d", extractCommand.c_str(), returnCode); + fprintf(stderr, "Executing %s returned %d\n", extractCommand.c_str(), returnCode); + fprintf(stderr, "%*s\n", int(extractErrorBuffer.size()), extractErrorBuffer.data()); + error_exit("Aborting"); } } diff --git a/adb/client/fastdeploycallbacks.cpp b/adb/client/fastdeploycallbacks.cpp index 6c9a21fde..23a0aca59 100644 --- a/adb/client/fastdeploycallbacks.cpp +++ b/adb/client/fastdeploycallbacks.cpp @@ -35,8 +35,7 @@ static void appendBuffer(std::vector* buffer, const char* input, int lengt class DeployAgentBufferCallback : public StandardStreamsCallbackInterface { public: - DeployAgentBufferCallback(std::vector* outBuffer, std::vector* errBuffer, - int* statusCode); + DeployAgentBufferCallback(std::vector* outBuffer, std::vector* errBuffer); virtual void OnStdout(const char* buffer, int length); virtual void OnStderr(const char* buffer, int length); @@ -45,27 +44,17 @@ class DeployAgentBufferCallback : public StandardStreamsCallbackInterface { private: std::vector* mpOutBuffer; std::vector* mpErrBuffer; - int* mpStatusCode; }; int capture_shell_command(const char* command, std::vector* outBuffer, std::vector* errBuffer) { - int statusCode; - DeployAgentBufferCallback cb(outBuffer, errBuffer, &statusCode); - int ret = send_shell_command(command, false, &cb); - - if (ret == 0) { - return statusCode; - } else { - return ret; - } + DeployAgentBufferCallback cb(outBuffer, errBuffer); + return send_shell_command(command, false, &cb); } -DeployAgentFileCallback::DeployAgentFileCallback(FILE* outputFile, std::vector* errBuffer, - int* statusCode) { +DeployAgentFileCallback::DeployAgentFileCallback(FILE* outputFile, std::vector* errBuffer) { mpOutFile = outputFile; mpErrBuffer = errBuffer; - mpStatusCode = statusCode; mBytesWritten = 0; } @@ -84,10 +73,7 @@ void DeployAgentFileCallback::OnStderr(const char* buffer, int length) { } int DeployAgentFileCallback::Done(int status) { - if (mpStatusCode != NULL) { - *mpStatusCode = status; - } - return 0; + return status; } int DeployAgentFileCallback::getBytesWritten() { @@ -95,11 +81,9 @@ int DeployAgentFileCallback::getBytesWritten() { } DeployAgentBufferCallback::DeployAgentBufferCallback(std::vector* outBuffer, - std::vector* errBuffer, - int* statusCode) { + std::vector* errBuffer) { mpOutBuffer = outBuffer; mpErrBuffer = errBuffer; - mpStatusCode = statusCode; } void DeployAgentBufferCallback::OnStdout(const char* buffer, int length) { @@ -111,8 +95,5 @@ void DeployAgentBufferCallback::OnStderr(const char* buffer, int length) { } int DeployAgentBufferCallback::Done(int status) { - if (mpStatusCode != NULL) { - *mpStatusCode = status; - } - return 0; + return status; } diff --git a/adb/client/fastdeploycallbacks.h b/adb/client/fastdeploycallbacks.h index b428b50bb..7e049c5ae 100644 --- a/adb/client/fastdeploycallbacks.h +++ b/adb/client/fastdeploycallbacks.h @@ -21,7 +21,7 @@ class DeployAgentFileCallback : public StandardStreamsCallbackInterface { public: - DeployAgentFileCallback(FILE* outputFile, std::vector* errBuffer, int* statusCode); + DeployAgentFileCallback(FILE* outputFile, std::vector* errBuffer); virtual void OnStdout(const char* buffer, int length); virtual void OnStderr(const char* buffer, int length); @@ -33,7 +33,6 @@ class DeployAgentFileCallback : public StandardStreamsCallbackInterface { FILE* mpOutFile; std::vector* mpErrBuffer; int mBytesWritten; - int* mpStatusCode; }; int capture_shell_command(const char* command, std::vector* outBuffer,