diff options
| author | Android (Google) Code Review <android-gerrit@google.com> | 2009-04-29 13:35:37 -0700 |
|---|---|---|
| committer | The Android Open Source Project <initial-contribution@android.com> | 2009-04-29 13:35:37 -0700 |
| commit | a73b41ae601b391ae67a4c603d07f8949cd666ac (patch) | |
| tree | 6796599b363bad3c1c722107fc60a7e8cd94026e /libs/surfaceflinger/SurfaceFlinger.cpp | |
| parent | 2f7e0447ac746e940db753178d513df914c20334 (diff) | |
| parent | 0124a150157d69a9f0ea109be2390afb5399b8a7 (diff) | |
| download | frameworks_base-a73b41ae601b391ae67a4c603d07f8949cd666ac.zip frameworks_base-a73b41ae601b391ae67a4c603d07f8949cd666ac.tar.gz frameworks_base-a73b41ae601b391ae67a4c603d07f8949cd666ac.tar.bz2 | |
am 0124a15: Merge change 626 into donut
Merge commit '0124a150157d69a9f0ea109be2390afb5399b8a7'
* commit '0124a150157d69a9f0ea109be2390afb5399b8a7':
fix 1803886 android15 Translucent GLSurfaceView demo does not display properly
Diffstat (limited to 'libs/surfaceflinger/SurfaceFlinger.cpp')
| -rw-r--r-- | libs/surfaceflinger/SurfaceFlinger.cpp | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/libs/surfaceflinger/SurfaceFlinger.cpp b/libs/surfaceflinger/SurfaceFlinger.cpp index c2adf07..54b33ce 100644 --- a/libs/surfaceflinger/SurfaceFlinger.cpp +++ b/libs/surfaceflinger/SurfaceFlinger.cpp @@ -242,6 +242,9 @@ sp<IMemory> SurfaceFlinger::getCblk() const status_t SurfaceFlinger::requestGPU(const sp<IGPUCallback>& callback, gpu_info_t* gpu) { + if (mGPU == 0) + return INVALID_OPERATION; + IPCThreadState* ipc = IPCThreadState::self(); const int pid = ipc->getCallingPid(); status_t err = mGPU->request(pid, callback, gpu); @@ -250,6 +253,9 @@ status_t SurfaceFlinger::requestGPU(const sp<IGPUCallback>& callback, status_t SurfaceFlinger::revokeGPU() { + if (mGPU == 0) + return INVALID_OPERATION; + return mGPU->friendlyRevoke(); } @@ -1601,10 +1607,14 @@ status_t SurfaceFlinger::onTransact( } return NO_ERROR; case 1005: // ask GPU revoke - mGPU->friendlyRevoke(); + if (mGPU != 0) { + mGPU->friendlyRevoke(); + } return NO_ERROR; case 1006: // revoke GPU - mGPU->unconditionalRevoke(); + if (mGPU != 0) { + mGPU->unconditionalRevoke(); + } return NO_ERROR; case 1007: // set mFreezeCount mFreezeCount = data.readInt32(); |
