您的位置:首页 > 移动开发 > Objective-C

SurfaceComposerClient object 问题

2016-05-26 23:14 375 查看
SurfaceComposerClient 类 的 构造函数声明如下:
public:
SurfaceComposerClient();
构造函数的定义如下:
SurfaceComposerClient::SurfaceComposerClient()
: mStatus(NO_INIT), mComposer(Composer::getInstance())
{
}

有这样的构造函数,因此
SurfaceComposerClient* client = new SurfaceComposerClient();
这样的变量定义不存在问题。

但是,在实际的使用过程中,却有问题,因为SurfaceComposerClient类中有一个函数
void SurfaceComposerClient::onFirstRef() {
sp<ISurfaceComposer> sm(ComposerService::getComposerService());
if (sm != 0) {
sp<ISurfaceComposerClient> conn = sm->createConnection();
if (conn != 0) {
mClient = conn;
mStatus = NO_ERROR;
}
}
}

如上面的变量定义时,这个函数则不会被调用到,这里面的语句都不会被执行到,因此
mStatus变量的值则不是NO_ERROR,还是原来的NO_INIT,这个类其它的成员函数中,
很多都会判断mStatus的值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: