From 27b11bf620fb01df2fb93bf4c28766e2270a9eed Mon Sep 17 00:00:00 2001
From: Florent Berthaut <florent.berthaut@univ-lille.fr>
Date: Mon, 21 Aug 2023 16:53:15 +0200
Subject: [PATCH] Fixed crash on receiving messages

---
 demo/Main.tscn | 6 +++---
 src/gdpd.cpp   | 7 +++++--
 2 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/demo/Main.tscn b/demo/Main.tscn
index ef291fb..7bedbd4 100644
--- a/demo/Main.tscn
+++ b/demo/Main.tscn
@@ -9,9 +9,9 @@ func _ready():
 	pass
 	
 func _process(delta):
-	#while _gdpd.has_message() :
-	#	var msg = _gdpd.get_next()
-	#	print(\"got message from pd \", msg)
+	while _gdpd.has_message() :
+		var msg = _gdpd.get_next()
+		print(\"got message from pd \", msg)
 	pass
 	
 func _load_patch(pd_patch) :
diff --git a/src/gdpd.cpp b/src/gdpd.cpp
index 039cccb..91ee7b0 100644
--- a/src/gdpd.cpp
+++ b/src/gdpd.cpp
@@ -182,6 +182,7 @@ int GdPd::start() {
 }
 
 void GdPd::stop() {
+	m_init=false;
 	m_audio.stopStream();
 	m_audio.closeStream();
 	m_pd.computeAudio(false);
@@ -235,8 +236,10 @@ void GdPd::subscribe(String symbStr) {
 }
 
 bool GdPd::has_message() {
-	//receive new messages
-	m_pd.receiveMessages();
+	if(m_init) {
+		//receive new messages
+		m_pd.receiveMessages();
+	}
 
 	//return if more than one message
 	int size = m_messages->size();
-- 
GitLab