From 1a7aafa90d48651f1a8252d00c3801d7f1f8fe2c Mon Sep 17 00:00:00 2001 From: Fabio Alessandrelli Date: Fri, 5 May 2017 19:37:43 +0200 Subject: Better explain out of memory error in message queue Also effectively saves one unnecessary call when everything is fine. --- core/message_queue.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'core/message_queue.cpp') diff --git a/core/message_queue.cpp b/core/message_queue.cpp index 14e8913d9f..fa1c8112cc 100644 --- a/core/message_queue.cpp +++ b/core/message_queue.cpp @@ -51,9 +51,10 @@ Error MessageQueue::push_call(ObjectID p_id, const StringName &p_method, const V type = ObjectDB::get_instance(p_id)->get_class(); print_line("failed method: " + type + ":" + p_method + " target ID: " + itos(p_id)); statistics(); + ERR_EXPLAIN("Message queue out of memory. Try increasing 'message_queue_size_kb' in project settings"); + ERR_FAIL_V(ERR_OUT_OF_MEMORY); } - ERR_FAIL_COND_V((buffer_end + room_needed) >= buffer_size, ERR_OUT_OF_MEMORY); Message *msg = memnew_placement(&buffer[buffer_end], Message); msg->args = p_argcount; msg->instance_ID = p_id; @@ -101,10 +102,10 @@ Error MessageQueue::push_set(ObjectID p_id, const StringName &p_prop, const Vari type = ObjectDB::get_instance(p_id)->get_class(); print_line("failed set: " + type + ":" + p_prop + " target ID: " + itos(p_id)); statistics(); + ERR_EXPLAIN("Message queue out of memory. Try increasing 'message_queue_size_kb' in project settings"); + ERR_FAIL_V(ERR_OUT_OF_MEMORY); } - ERR_FAIL_COND_V((buffer_end + room_needed) >= buffer_size, ERR_OUT_OF_MEMORY); - Message *msg = memnew_placement(&buffer[buffer_end], Message); msg->args = 1; msg->instance_ID = p_id; @@ -134,9 +135,10 @@ Error MessageQueue::push_notification(ObjectID p_id, int p_notification) { type = ObjectDB::get_instance(p_id)->get_class(); print_line("failed notification: " + itos(p_notification) + " target ID: " + itos(p_id)); statistics(); + ERR_EXPLAIN("Message queue out of memory. Try increasing 'message_queue_size_kb' in project settings"); + ERR_FAIL_V(ERR_OUT_OF_MEMORY); } - ERR_FAIL_COND_V((buffer_end + room_needed) >= buffer_size, ERR_OUT_OF_MEMORY); Message *msg = memnew_placement(&buffer[buffer_end], Message); msg->type = TYPE_NOTIFICATION; -- cgit v1.2.3