Surface can now be created only from an IGraphicBufferProducer
it can't write itself to a parcel, nor can it be created from a
parcel.
Change-Id: I69165d5c54d6024b3e546e80d8b57e3dedda7893
diff --git a/libs/gui/Surface.cpp b/libs/gui/Surface.cpp
index 950d16a..ec55b57 100644
--- a/libs/gui/Surface.cpp
+++ b/libs/gui/Surface.cpp
@@ -38,22 +38,8 @@
Surface::Surface(
const sp<IGraphicBufferProducer>& bufferProducer)
+ : mGraphicBufferProducer(bufferProducer)
{
- Surface::init();
- Surface::setIGraphicBufferProducer(bufferProducer);
-}
-
-Surface::Surface() {
- Surface::init();
-}
-
-Surface::~Surface() {
- if (mConnectedToCpu) {
- Surface::disconnect(NATIVE_WINDOW_API_CPU);
- }
-}
-
-void Surface::init() {
// Initialize the ANativeWindow function pointers.
ANativeWindow::setSwapInterval = hook_setSwapInterval;
ANativeWindow::dequeueBuffer = hook_dequeueBuffer;
@@ -87,10 +73,10 @@
mConnectedToCpu = false;
}
-void Surface::setIGraphicBufferProducer(
- const sp<IGraphicBufferProducer>& bufferProducer)
-{
- mGraphicBufferProducer = bufferProducer;
+Surface::~Surface() {
+ if (mConnectedToCpu) {
+ Surface::disconnect(NATIVE_WINDOW_API_CPU);
+ }
}
sp<IGraphicBufferProducer> Surface::getIGraphicBufferProducer() const {
@@ -723,23 +709,6 @@
// ----------------------------------------------------------------------------
-status_t Surface::writeToParcel(
- const sp<Surface>& surface, Parcel* parcel) {
- sp<IGraphicBufferProducer> bp;
- if (surface != NULL) {
- bp = surface->mGraphicBufferProducer;
- }
- return parcel->writeStrongBinder(bp->asBinder());
-}
-
-sp<Surface> Surface::readFromParcel(const Parcel& data) {
- sp<IBinder> binder(data.readStrongBinder());
- sp<IGraphicBufferProducer> bp(interface_cast<IGraphicBufferProducer>(binder));
- return bp != NULL ? new Surface(bp): NULL;
-}
-
-// ----------------------------------------------------------------------------
-
status_t Surface::lock(
ANativeWindow_Buffer* outBuffer, ARect* inOutDirtyBounds)
{