#endif
#include <assert.h>
+#include <string.h>
#include "scrnintstr.h"
#ifdef RANDR
#endif
}
-const char *vncRandRGetOutputName(int scrIdx, int outputIdx)
+char *vncRandRGetOutputName(int scrIdx, int outputIdx)
{
#ifdef RANDR
rrScrPrivPtr rp = rrGetScrPriv(screenInfo.screens[scrIdx]);
- return rp->outputs[outputIdx]->name;
+ return strdup(rp->outputs[outputIdx]->name);
#else
- return "";
+ return strdup("");
#endif
}
int vncRandRGetOutputCount(int scrIdx);
int vncRandRGetAvailableOutputs(int scrIdx);
-const char *vncRandRGetOutputName(int scrIdx, int outputIdx);
+char *vncRandRGetOutputName(int scrIdx, int outputIdx);
int vncRandRIsOutputEnabled(int scrIdx, int outputIdx);
int vncRandRIsOutputUsable(int scrIdx, int outputIdx);
/* Disable and move on... */
ret = vncRandRDisableOutput(screenIndex, i);
if (!ret) {
+ char *name = vncRandRGetOutputName(screenIndex, i);
vlog.error("Failed to disable unused output '%s'",
- vncRandRGetOutputName(screenIndex, i));
+ name);
+ free(name);
return rfb::resultInvalid;
}
outputIdMap.erase(output);
iter->dimensions.width(),
iter->dimensions.height());
if (!ret) {
+ char *name = vncRandRGetOutputName(screenIndex, i);
vlog.error("Failed to reconfigure output '%s' to %dx%d+%d+%d",
- vncRandRGetOutputName(screenIndex, i),
+ name,
iter->dimensions.width(), iter->dimensions.height(),
iter->dimensions.tl.x, iter->dimensions.tl.y);
+ free(name);
return rfb::resultInvalid;
}
}
iter->dimensions.width(),
iter->dimensions.height());
if (!ret) {
+ char *name = vncRandRGetOutputName(screenIndex, i);
vlog.error("Failed to reconfigure output '%s' to %dx%d+%d+%d",
- vncRandRGetOutputName(screenIndex, i),
+ name,
iter->dimensions.width(), iter->dimensions.height(),
iter->dimensions.tl.x, iter->dimensions.tl.y);
+ free(name);
return rfb::resultInvalid;
}
}