vfb: factor out method to free a single screen info
This commit is contained in:
parent
356ffd6729
commit
492639f5e1
@ -156,22 +156,16 @@ vfbBitsPerPixel(int depth)
|
|||||||
return 32;
|
return 32;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
static void
|
||||||
ddxGiveUp(enum ExitCode error)
|
freeScreenInfo(vfbScreenInfoPtr pvfb)
|
||||||
{
|
{
|
||||||
int i;
|
|
||||||
|
|
||||||
/* clean up the framebuffers */
|
|
||||||
|
|
||||||
switch (fbmemtype) {
|
switch (fbmemtype) {
|
||||||
#ifdef HAVE_MMAP
|
#ifdef HAVE_MMAP
|
||||||
case MMAPPED_FILE_FB:
|
case MMAPPED_FILE_FB:
|
||||||
for (i = 0; i < vfbNumScreens; i++) {
|
if (-1 == unlink(pvfb->mmap_file)) {
|
||||||
if (-1 == unlink(vfbScreens[i].mmap_file)) {
|
|
||||||
perror("unlink");
|
perror("unlink");
|
||||||
ErrorF("unlink %s failed, %s",
|
ErrorF("unlink %s failed, %s",
|
||||||
vfbScreens[i].mmap_file, strerror(errno));
|
pvfb->mmap_file, strerror(errno));
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
#else /* HAVE_MMAP */
|
#else /* HAVE_MMAP */
|
||||||
@ -181,12 +175,10 @@ ddxGiveUp(enum ExitCode error)
|
|||||||
|
|
||||||
#ifdef HAS_SHM
|
#ifdef HAS_SHM
|
||||||
case SHARED_MEMORY_FB:
|
case SHARED_MEMORY_FB:
|
||||||
for (i = 0; i < vfbNumScreens; i++) {
|
if (-1 == shmdt((char *) pvfb->pXWDHeader)) {
|
||||||
if (-1 == shmdt((char *) vfbScreens[i].pXWDHeader)) {
|
|
||||||
perror("shmdt");
|
perror("shmdt");
|
||||||
ErrorF("shmdt failed, %s", strerror(errno));
|
ErrorF("shmdt failed, %s", strerror(errno));
|
||||||
}
|
}
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
#else /* HAS_SHM */
|
#else /* HAS_SHM */
|
||||||
case SHARED_MEMORY_FB:
|
case SHARED_MEMORY_FB:
|
||||||
@ -194,13 +186,22 @@ ddxGiveUp(enum ExitCode error)
|
|||||||
#endif /* HAS_SHM */
|
#endif /* HAS_SHM */
|
||||||
|
|
||||||
case NORMAL_MEMORY_FB:
|
case NORMAL_MEMORY_FB:
|
||||||
for (i = 0; i < vfbNumScreens; i++) {
|
free(pvfb->pXWDHeader);
|
||||||
free(vfbScreens[i].pXWDHeader);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ddxGiveUp(enum ExitCode error)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
/* clean up the framebuffers */
|
||||||
|
for (i = 0; i < vfbNumScreens; i++) {
|
||||||
|
freeScreenInfo(&vfbScreens[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef __APPLE__
|
#ifdef __APPLE__
|
||||||
void
|
void
|
||||||
DarwinHandleGUI(int argc, char *argv[])
|
DarwinHandleGUI(int argc, char *argv[])
|
||||||
|
Loading…
Reference in New Issue
Block a user