Browse Source

Call FatalError on fatal exceptions

tags/v1.8.90
Pierre Ossman 6 years ago
parent
commit
3b03b43017
3 changed files with 27 additions and 1 deletions
  1. 12
    0
      unix/xserver/hw/vnc/XorgGlue.c
  2. 10
    0
      unix/xserver/hw/vnc/XorgGlue.h
  3. 5
    1
      unix/xserver/hw/vnc/vncExtInit.cc

+ 12
- 0
unix/xserver/hw/vnc/XorgGlue.c View File

@@ -40,6 +40,18 @@ unsigned long vncGetServerGeneration(void)
return serverGeneration;
}

void vncFatalError(const char *format, ...)
{
va_list args;
char buffer[4096];

va_start(args, format);
vsnprintf(buffer, sizeof(buffer), format, args);
va_end(args);

FatalError("%s", buffer);
}

int vncGetScreenCount(void)
{
return screenInfo.numScreens;

+ 10
- 0
unix/xserver/hw/vnc/XorgGlue.h View File

@@ -24,9 +24,19 @@
extern "C" {
#endif

#ifdef __GNUC__
# define __printf_attr(a, b) __attribute__((__format__ (__printf__, a, b)))
# define __noreturn_attr __attribute__((noreturn))
#else
# define __printf_attr(a, b)
# define __noreturn_attr
#endif // __GNUC__

const char *vncGetDisplay(void);
unsigned long vncGetServerGeneration(void);

void vncFatalError(const char *format, ...) __printf_attr(1, 2) __noreturn_attr;

int vncGetScreenCount(void);

void vncGetScreenFormat(int scrIdx, int *depth, int *bpp,

+ 5
- 1
unix/xserver/hw/vnc/vncExtInit.cc View File

@@ -436,7 +436,11 @@ void vncPostScreenResize(int scrIdx, int success, int width, int height)

void vncRefreshScreenLayout(int scrIdx)
{
desktop[scrIdx]->refreshScreenLayout();
try {
desktop[scrIdx]->refreshScreenLayout();
} catch (rdr::Exception& e) {
vncFatalError("%s", e.str());
}
}

int vncOverrideParam(const char *nameAndValue)

Loading…
Cancel
Save