Author: jingham Date: Thu Apr 26 18:57:40 2018 New Revision: 331012 URL: http://llvm.org/viewvc/llvm-project?rev=331012&view=rev Log: Fix a thinko in the iteration over StructuredDataPlugin Create functions.
The code was grabbing the first plugin, and then never getting another one. <rdar://problem/39779438> Modified: lldb/trunk/source/Target/Process.cpp Modified: lldb/trunk/source/Target/Process.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Target/Process.cpp?rev=331012&r1=331011&r2=331012&view=diff ============================================================================== --- lldb/trunk/source/Target/Process.cpp (original) +++ lldb/trunk/source/Target/Process.cpp Thu Apr 26 18:57:40 2018 @@ -6177,11 +6177,16 @@ void Process::MapSupportedStructuredData // For each StructuredDataPlugin, if the plugin handles any of the // types in the supported_type_names, map that type name to that plugin. - uint32_t plugin_index = 0; - for (auto create_instance = + // Stop when we've consumed all the type names. + // FIXME: should we return an error if there are type names nobody + // supports? + for (uint32_t plugin_index = 0; !const_type_names.empty(); plugin_index++) { + auto create_instance = PluginManager::GetStructuredDataPluginCreateCallbackAtIndex( plugin_index); - create_instance && !const_type_names.empty(); ++plugin_index) { + if (!create_instance) + break; + // Create the plugin. StructuredDataPluginSP plugin_sp = (*create_instance)(*this); if (!plugin_sp) { _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits