Hello, currently i try to generate dynamic messages out of a .proto descriptor loaded at runtime and have some problems with the ownership of the created messages. A simple break-down of my code will look like this:
DynamicMessageFactory dynamicMessageFactory; Arena arena; const Descriptor* messageDesc = protoFileDescriptor->FindMessageTypeByName( "Foo" ); Message* message = dynamicMessageFactory.GetPrototype( messageDesc )->New(&arena); As i said, the protoFileDescriptor is a Descriptor of a .proto message which i load at runtime. Now i wan't to create messages from it, which are only known by name at runtime (in this example "Foo"). Also i wan't to use a Arena for all Message creations out of this .proto Descriptor. Unfortunately this will not work, cause the Arena will try to release the message he use to own and the DynamicMessageFactory will also try to delete the created message. This means everything will work well till the DynamicMessageFactory or Arena (or both in this case) will get out of scope and try to delete there "owned" message instances. The Message::New method description say's that the ownership for this message will be passed to the caller ... or in this case the given Arena. Is there another way to generate Message instances out of a Descriptor instead of using the DynamicMessageFactory? It is not intended to use the DynamicMessageFactory in common with a Arena? With best regards, Torsten -- You received this message because you are subscribed to the Google Groups "Protocol Buffers" group. To unsubscribe from this group and stop receiving emails from it, send an email to protobuf+unsubscr...@googlegroups.com. To post to this group, send email to protobuf@googlegroups.com. Visit this group at http://groups.google.com/group/protobuf. For more options, visit https://groups.google.com/d/optout.