| 813 | } |
| 814 | |
| 815 | void DestroySurface(Surface *surface) |
| 816 | { |
| 817 | if (nullptr == data || nullptr == surface) |
| 818 | return; |
| 819 | |
| 820 | ApiInvoker<"RefBase::DecStrong">()(reinterpret_cast<Surface *>(reinterpret_cast<size_t>(surface) - sizeof(std::max_align_t) / 2), this); |
| 821 | if (7 > SystemVersion) |
| 822 | ApiInvoker<"Surface::DisConnect@v6">()(reinterpret_cast<Surface *>(reinterpret_cast<size_t>(surface) - sizeof(std::max_align_t) / 2), -1); |
| 823 | else |
| 824 | DisConnect(); |
| 825 | ApiInvoker<"RefBase::DecStrong">()(data, this); |
| 826 | } |
| 827 | }; |
| 828 | |
| 829 | struct SurfaceComposerClientTransaction |