From bcf87589a010480afbe6ab9f1b81cde37c6bdbb5 Mon Sep 17 00:00:00 2001 From: patacongo Date: Thu, 17 May 2012 16:55:13 +0000 Subject: Fix a C++ link issue: If constant strings used only in constructor, the don't get linked into the final executable git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4743 42af7a65-404d-4744-a932-0658087f49c3 --- NxWidgets/nxwm/src/cstartwindow.cxx | 22 +++++++++++++++++----- NxWidgets/nxwm/src/cwindowcontrol.cxx | 9 ++++----- 2 files changed, 21 insertions(+), 10 deletions(-) (limited to 'NxWidgets/nxwm/src') diff --git a/NxWidgets/nxwm/src/cstartwindow.cxx b/NxWidgets/nxwm/src/cstartwindow.cxx index 1c997fbb7..2b7ecbe66 100644 --- a/NxWidgets/nxwm/src/cstartwindow.cxx +++ b/NxWidgets/nxwm/src/cstartwindow.cxx @@ -1,5 +1,5 @@ /******************************************************************************************** - * NxWidgets/nxwm/src/cnxconsole.cxx + * NxWidgets/nxwm/src/cstartwindow.cxx * * Copyright (C) 2012 Gregory Nutt. All rights reserved. * Author: Gregory Nutt @@ -57,6 +57,16 @@ * Pre-Processor Definitions ********************************************************************************************/ +/******************************************************************************************** + * Global Data + ********************************************************************************************/ + +/** + * The well-known name for the Start Window's message queue. + */ + +FAR const char *NxWM::g_startWindowMqName = CONFIG_NXWM_STARTWINDOW_MQNAME; + /******************************************************************************************** * CStartWindow Method Implementations ********************************************************************************************/ @@ -554,10 +564,10 @@ int CStartWindow::startWindow(int argc, char *argv[]) attr.mq_msgsize = sizeof(struct SStartWindowMessage); attr.mq_flags = 0; - mqd_t mqd = mq_open(CONFIG_NXWM_STARTWINDOW_MQNAME, O_RDONLY|O_CREAT, 0666, &attr); + mqd_t mqd = mq_open(g_startWindowMqName, O_RDONLY|O_CREAT, 0666, &attr); if (mqd == (mqd_t)-1) { - gdbg("ERROR: mq_open(%s) failed: %d\n", CONFIG_NXWM_STARTWINDOW_MQNAME, errno); + gdbg("ERROR: mq_open(%s) failed: %d\n", g_startWindowMqName, errno); return EXIT_FAILURE; } @@ -573,12 +583,14 @@ int CStartWindow::startWindow(int argc, char *argv[]) ssize_t nbytes = mq_receive(mqd, &msg, sizeof(struct SStartWindowMessage), 0); if (nbytes < 0) { + int errval = errno; + // EINTR is not an error. The wait was interrupted by a signal and // we just need to try reading again. - if (errno != EINTR) + if (errval != EINTR) { - gdbg("ERROR: mq_receive failed: %d\n", errno); + gdbg("ERROR: mq_receive failed: %d\n", errval); } } while (nbytes < 0); diff --git a/NxWidgets/nxwm/src/cwindowcontrol.cxx b/NxWidgets/nxwm/src/cwindowcontrol.cxx index 2c575d35b..6c2144bad 100644 --- a/NxWidgets/nxwm/src/cwindowcontrol.cxx +++ b/NxWidgets/nxwm/src/cwindowcontrol.cxx @@ -77,10 +77,10 @@ CWindowControl::CWindowControl(FAR const NXWidgets::CWidgetStyle *style) attr.mq_msgsize = sizeof(struct SStartWindowMessage); attr.mq_flags = 0; - m_mqd = mq_open(CONFIG_NXWM_STARTWINDOW_MQNAME, O_WRONLY|O_CREAT, 0666, &attr); + m_mqd = mq_open(g_startWindowMqName, O_WRONLY|O_CREAT, 0666, &attr); if (m_mqd == (mqd_t)-1) { - gdbg("ERROR: mq_open(%s) failed: %d\n", CONFIG_NXWM_STARTWINDOW_MQNAME, errno); + gdbg("ERROR: mq_open(%s) failed: %d\n", g_startWindowMqName, errno); } // Add ourself as the window callback @@ -126,7 +126,6 @@ void CWindowControl::destroy(IApplication *app) { gdbg("ERROR: mq_send failed: %d\n", errno); } - } /** @@ -166,7 +165,7 @@ void CWindowControl::handleMouseEvent(void) struct SStartWindowMessage outmsg; outmsg.msgId = MSGID_MOUSE_INPUT; - outmsg.instance = (FAR void *)static_cast(this); + outmsg.instance = (FAR void *)this; int ret = mq_send(m_mqd, &outmsg, sizeof(struct SStartWindowMessage), CONFIG_NXWM_STARTWINDOW_MXMPRIO); @@ -212,7 +211,7 @@ void CWindowControl::handleKeyboardEvent(void) struct SStartWindowMessage outmsg; outmsg.msgId = MSGID_KEYBOARD_INPUT; - outmsg.instance = (FAR void *)static_cast(this); + outmsg.instance = (FAR void *)this; int ret = mq_send(m_mqd, &outmsg, sizeof(struct SStartWindowMessage), CONFIG_NXWM_STARTWINDOW_MXMPRIO); -- cgit v1.2.3