SurfaceComposerClient object 问题

来源:互联网 发布:cool edit for mac版 编辑:程序博客网 时间:2024/05/17 22:43
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的值。
0 0