const std::string Event::getEventName(Type type)
{
+ char *s;
+
if(type < 0 || type >= TYPE_MAX) {
STACK_ADD;
throw(Exception(EXCEPTION_MANDATORY, EINVAL, "invalid event type"));
}
- return std::string(edg_wll_EventToString(edg_wll_EventCode(type)));
+ s = edg_wll_EventToString(edg_wll_EventCode(type));
+ if (!s) {
+ STACK_ADD;
+ throw(Exception(EXCEPTION_MANDATORY, EINVAL, "invalid event type"));
+ }
+ std::string ret(s);
+ free(s);
+ return ret;
}
char *edg_wll_EventToString(edg_wll_EventCode event)
{
if ((int)event < 0 || event >= sizeof(eventNames)/sizeof(eventNames[0])) return NULL;
- return strdup(eventNames[event]);
+ return eventNames[event] ? strdup(eventNames[event]) : NULL;
}