make EphyrXVPriv be a singleton
* hw/kdrive/ephyr/ephyrvideo.c: (ephyrInitVideo) make the EphyrXVPriv object be a singleton instance, otherwise a new object is created at each generation.
This commit is contained in:
parent
4ed083095a
commit
39d3895469
|
@ -1,4 +1,4 @@
|
||||||
/*
|
/*
|
||||||
* Xephyr - A kdrive X server thats runs in a host X window.
|
* Xephyr - A kdrive X server thats runs in a host X window.
|
||||||
* Authored by Matthew Allum <mallum@openedhand.com>
|
* Authored by Matthew Allum <mallum@openedhand.com>
|
||||||
*
|
*
|
||||||
|
@ -267,9 +267,10 @@ out:
|
||||||
Bool
|
Bool
|
||||||
ephyrInitVideo (ScreenPtr pScreen)
|
ephyrInitVideo (ScreenPtr pScreen)
|
||||||
{
|
{
|
||||||
|
Bool is_ok = FALSE ;
|
||||||
KdScreenPriv(pScreen);
|
KdScreenPriv(pScreen);
|
||||||
KdScreenInfo *screen = pScreenPriv->screen;
|
KdScreenInfo *screen = pScreenPriv->screen;
|
||||||
EphyrXVPriv *xv_priv = NULL ;
|
static EphyrXVPriv *xv_priv;
|
||||||
|
|
||||||
EPHYR_LOG ("enter\n") ;
|
EPHYR_LOG ("enter\n") ;
|
||||||
|
|
||||||
|
@ -278,17 +279,22 @@ ephyrInitVideo (ScreenPtr pScreen)
|
||||||
return FALSE ;
|
return FALSE ;
|
||||||
}
|
}
|
||||||
|
|
||||||
xv_priv = ephyrXVPrivNew () ;
|
if (!xv_priv) {
|
||||||
|
xv_priv = ephyrXVPrivNew () ;
|
||||||
|
}
|
||||||
if (!xv_priv) {
|
if (!xv_priv) {
|
||||||
EPHYR_LOG_ERROR ("failed to create xv_priv\n") ;
|
EPHYR_LOG_ERROR ("failed to create xv_priv\n") ;
|
||||||
return FALSE ;
|
goto out ;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!ephyrXVPrivRegisterAdaptors (xv_priv, pScreen)) {
|
if (!ephyrXVPrivRegisterAdaptors (xv_priv, pScreen)) {
|
||||||
EPHYR_LOG_ERROR ("failed to register adaptors\n") ;
|
EPHYR_LOG_ERROR ("failed to register adaptors\n") ;
|
||||||
return FALSE ;
|
goto out ;
|
||||||
}
|
}
|
||||||
return TRUE ;
|
is_ok = TRUE ;
|
||||||
|
|
||||||
|
out:
|
||||||
|
return is_ok ;
|
||||||
}
|
}
|
||||||
|
|
||||||
static EphyrXVPriv*
|
static EphyrXVPriv*
|
||||||
|
@ -607,6 +613,8 @@ ephyrXVPrivRegisterAdaptors (EphyrXVPriv *a_this,
|
||||||
goto out ;
|
goto out ;
|
||||||
num_registered_adaptors =
|
num_registered_adaptors =
|
||||||
KdXVListGenericAdaptors (screen, ®istered_adaptors);
|
KdXVListGenericAdaptors (screen, ®istered_adaptors);
|
||||||
|
EPHYR_LOG ("") ;
|
||||||
|
|
||||||
num_adaptors = num_registered_adaptors + a_this->num_adaptors ;
|
num_adaptors = num_registered_adaptors + a_this->num_adaptors ;
|
||||||
adaptors = xcalloc (num_adaptors, sizeof (KdVideoAdaptorPtr)) ;
|
adaptors = xcalloc (num_adaptors, sizeof (KdVideoAdaptorPtr)) ;
|
||||||
if (!adaptors) {
|
if (!adaptors) {
|
||||||
|
@ -621,7 +629,7 @@ ephyrXVPrivRegisterAdaptors (EphyrXVPriv *a_this,
|
||||||
EPHYR_LOG_ERROR ("failed to register adaptors\n");
|
EPHYR_LOG_ERROR ("failed to register adaptors\n");
|
||||||
goto out ;
|
goto out ;
|
||||||
}
|
}
|
||||||
EPHYR_LOG ("registered %d adaptors\n", num_adaptors) ;
|
EPHYR_LOG ("there are %d registered adaptors\n", num_adaptors) ;
|
||||||
is_ok = TRUE ;
|
is_ok = TRUE ;
|
||||||
|
|
||||||
out:
|
out:
|
||||||
|
|
Loading…
Reference in New Issue