aboutsummaryrefslogtreecommitdiff
path: root/lib/python/Plugins
diff options
context:
space:
mode:
authorAndreas Monzner <andreas.monzner@multimedia-labs.de>2008-10-29 19:46:57 +0000
committerAndreas Monzner <andreas.monzner@multimedia-labs.de>2008-10-29 19:46:57 +0000
commit10e7e45ae92d4fe06f70126ed256b87896dbc432 (patch)
treef4b03eb252e5517ccb67be3cd8463c10e14e147c /lib/python/Plugins
parent6bb94cd5b0d8fd3608afe84e8d76aef554a4b401 (diff)
downloadenigma2-10e7e45ae92d4fe06f70126ed256b87896dbc432.tar.gz
enigma2-10e7e45ae92d4fe06f70126ed256b87896dbc432.zip
better solution to add possibility to delete eSocketNotifiers,
eConsoleAppContainers in callback funktions without crash
Diffstat (limited to 'lib/python/Plugins')
-rw-r--r--lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.cpp4
-rw-r--r--lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.h2
-rw-r--r--lib/python/Plugins/Extensions/SocketMMI/src/socket_mmi.cpp13
-rw-r--r--lib/python/Plugins/Extensions/SocketMMI/src/socket_mmi.h2
4 files changed, 8 insertions, 13 deletions
diff --git a/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.cpp b/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.cpp
index da7bc5f2..1add04ab 100644
--- a/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.cpp
+++ b/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.cpp
@@ -91,9 +91,9 @@ eServiceDVD::eServiceDVD(const char *filename):
m_subtitle_widget(0),
m_state(stIdle),
m_current_trick(0),
- m_sn(eApp, ddvd_get_messagepipe_fd(m_ddvdconfig), eSocketNotifier::Read|eSocketNotifier::Priority|eSocketNotifier::Error|eSocketNotifier::Hungup),
m_pump(eApp, 1)
{
+ m_sn = eSocketNotifier::create(eApp, ddvd_get_messagepipe_fd(m_ddvdconfig), eSocketNotifier::Read|eSocketNotifier::Priority|eSocketNotifier::Error|eSocketNotifier::Hungup);
std::string aspect;
eDebug("SERVICEDVD construct!");
// create handle
@@ -111,7 +111,7 @@ eServiceDVD::eServiceDVD(const char *filename):
ddvd_set_video(m_ddvdconfig, DDVD_16_9, DDVD_PAL);
ddvd_set_lfb(m_ddvdconfig, (unsigned char *)m_pixmap->surface->data, 720, 576, 4, 720*4);
- CONNECT(m_sn.activated, eServiceDVD::gotMessage);
+ CONNECT(m_sn->activated, eServiceDVD::gotMessage);
CONNECT(m_pump.recv_msg, eServiceDVD::gotThreadMessage);
strcpy(m_ddvd_titlestring,"");
m_cue_pts = 0;
diff --git a/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.h b/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.h
index bdec4836..12e21d2f 100644
--- a/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.h
+++ b/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.h
@@ -118,7 +118,7 @@ private:
char m_ddvd_titlestring[96];
- eSocketNotifier m_sn;
+ ePtr<eSocketNotifier> m_sn;
eFixedMessagePump<int> m_pump;
pts_t m_cue_pts;
diff --git a/lib/python/Plugins/Extensions/SocketMMI/src/socket_mmi.cpp b/lib/python/Plugins/Extensions/SocketMMI/src/socket_mmi.cpp
index 36ce9f40..673b525c 100644
--- a/lib/python/Plugins/Extensions/SocketMMI/src/socket_mmi.cpp
+++ b/lib/python/Plugins/Extensions/SocketMMI/src/socket_mmi.cpp
@@ -129,7 +129,7 @@ int eSocketMMIHandler::send_to_mmisock( void* buf, size_t len)
}
eSocketMMIHandler::eSocketMMIHandler()
- :buffer(512), connfd(-1), connsn(0), sockname("/tmp/mmi.socket"), name(0)
+ :buffer(512), connfd(-1), sockname("/tmp/mmi.socket"), name(0)
{
memset(&servaddr, 0, sizeof(struct sockaddr_un));
servaddr.sun_family = AF_UNIX;
@@ -154,7 +154,7 @@ eSocketMMIHandler::eSocketMMIHandler()
else if (listen(listenfd, 0) == -1)
eDebug("[eSocketMMIHandler] listen (%m)");
else {
- listensn = new eSocketNotifier( eApp, listenfd, POLLIN );
+ listensn = eSocketNotifier::create( eApp, listenfd, POLLIN );
listensn->start();
CONNECT( listensn->activated, eSocketMMIHandler::listenDataAvail );
eDebug("[eSocketMMIHandler] created successfully");
@@ -186,7 +186,7 @@ void eSocketMMIHandler::listenDataAvail(int what)
else if (fcntl(connfd, F_SETFL, val | O_NONBLOCK) == -1)
eDebug("[eSocketMMIHandler] F_SETFL (%m)");
else {
- connsn = new eSocketNotifier( eApp, connfd, POLLIN|POLLHUP|POLLERR );
+ connsn = eSocketNotifier::create( eApp, connfd, POLLIN|POLLHUP|POLLERR );
CONNECT( connsn->activated, eSocketMMIHandler::connDataAvail );
return;
}
@@ -294,11 +294,7 @@ void eSocketMMIHandler::closeConn()
close(connfd);
connfd=-1;
}
- if ( connsn )
- {
- delete connsn;
- connsn=0;
- }
+ connsn=0;
if ( name )
{
delete [] name;
@@ -309,7 +305,6 @@ void eSocketMMIHandler::closeConn()
eSocketMMIHandler::~eSocketMMIHandler()
{
closeConn();
- delete listensn;
unlink(sockname);
}
diff --git a/lib/python/Plugins/Extensions/SocketMMI/src/socket_mmi.h b/lib/python/Plugins/Extensions/SocketMMI/src/socket_mmi.h
index ebba9a62..063e1d54 100644
--- a/lib/python/Plugins/Extensions/SocketMMI/src/socket_mmi.h
+++ b/lib/python/Plugins/Extensions/SocketMMI/src/socket_mmi.h
@@ -16,7 +16,7 @@ class eSocketMMIHandler: public Object
eIOBuffer buffer;
int listenfd, connfd, clilen;
struct sockaddr_un servaddr;
- eSocketNotifier *listensn, *connsn;
+ ePtr<eSocketNotifier> listensn, connsn;
void listenDataAvail(int what);
void connDataAvail(int what);
void closeConn();