Fix issue with queue compiler.
This was stopping it from accepting queues with empty messages.
(This was formerly a part of I3d012fb8a9652c0b85ed27f5d23fe7d63bb977ce.)
Change-Id: I233f0005a5a916f22a15e81393582df95165150d
diff --git a/aos/build/queues/output/message_dec.rb b/aos/build/queues/output/message_dec.rb
index 36300ea..a65aca3 100644
--- a/aos/build/queues/output/message_dec.rb
+++ b/aos/build/queues/output/message_dec.rb
@@ -31,6 +31,9 @@
member_func.suite << CPP::Return.new("&kMsgMessageType")
end
def create_InOrderConstructor(type_class, cpp_tree)
+ if @members.empty?
+ return
+ end
cons = CPP::Constructor.new(type_class)
type_class.add_member(cons)
@members.each do |member|
@@ -151,7 +154,12 @@
member_func.suite << "size_t super_size = ::aos::Message::Print(buffer, length)"
member_func.suite << "buffer += super_size"
member_func.suite << "length -= super_size"
- member_func.suite << "return super_size + snprintf(buffer, length, " + ([format] + args).join(", ") + ")";
+ if !args.empty?
+ member_func.suite << "return super_size + snprintf(buffer, length, " + ([format] + args).join(", ") + ")";
+ else
+ # snprintf will return zero.
+ member_func.suite << "return super_size"
+ end
end
def create_GetType(type_class, cpp_tree)
member_func = CPP::MemberFunc.new(type_class,"const ::aos::MessageType*","GetType")