Hi,

I am struggling with the MessageDifferencer of protobuf (version 3). I was 
hoping to use the StreamReporter::ReportModified(const Message & message1, 
const Message & message2, const std::vector< SpecificField > & field_path) to 
get the modified fields filled into the field_path vector. So I could just 
focus on those differences.

However, when I run the following code, I get a segmentation fault. I am 
not sure yet why that is.



string diff_report;
MessageDifferencer md;
md.set_report_matches(false);
md.set_report_moves(false);
md.set_scope(MessageDifferencer::FULL);
md.ReportDifferencesToString(&diff_report);
bool diff = md.Compare(msgIn01, msgIn02);
cout << "diff : " << boolalpha << diff << endl;
cout << "diff : " << diff_report << endl;

string reporterString;
google::protobuf::io::StringOutputStream sos(&reporterString);
MessageDifferencer::StreamReporter reporter(&sos);
std::vector< MessageDifferencer::SpecificField > field_path;
md.ReportDifferencesTo(&reporter);
reporter.ReportMatched(msgIn01, msgIn02, field_path);


The output I get is showing this :


diff : false
diff : modified: msg.send.settings.Scan.Frames[0].txFstop: 0.5 -> 2.5


Program received signal SIGSEGV, Segmentation fault.




-- 
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 https://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.

Reply via email to