Internal Change
PiperOrigin-RevId: 553652444
This commit is contained in:
		
							parent
							
								
									360959e325
								
							
						
					
					
						commit
						11508f2291
					
				| 
						 | 
					@ -501,7 +501,6 @@ cc_library(
 | 
				
			||||||
        ":calculator_graph_template_cc_proto",
 | 
					        ":calculator_graph_template_cc_proto",
 | 
				
			||||||
        ":proto_util_lite",
 | 
					        ":proto_util_lite",
 | 
				
			||||||
        "//mediapipe/framework:calculator_cc_proto",
 | 
					        "//mediapipe/framework:calculator_cc_proto",
 | 
				
			||||||
        "//mediapipe/framework/port:logging",
 | 
					 | 
				
			||||||
        "//mediapipe/framework/port:numbers",
 | 
					        "//mediapipe/framework/port:numbers",
 | 
				
			||||||
        "//mediapipe/framework/port:ret_check",
 | 
					        "//mediapipe/framework/port:ret_check",
 | 
				
			||||||
        "//mediapipe/framework/port:status",
 | 
					        "//mediapipe/framework/port:status",
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -15,20 +15,14 @@
 | 
				
			||||||
#include "mediapipe/framework/tool/template_expander.h"
 | 
					#include "mediapipe/framework/tool/template_expander.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <algorithm>
 | 
					#include <algorithm>
 | 
				
			||||||
#include <map>
 | 
					 | 
				
			||||||
#include <memory>
 | 
					#include <memory>
 | 
				
			||||||
#include <string>
 | 
					#include <string>
 | 
				
			||||||
#include <utility>
 | 
					 | 
				
			||||||
#include <vector>
 | 
					#include <vector>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "absl/strings/ascii.h"
 | 
					#include "absl/strings/ascii.h"
 | 
				
			||||||
#include "absl/strings/match.h"
 | 
					#include "absl/strings/match.h"
 | 
				
			||||||
#include "absl/strings/numbers.h"
 | 
					#include "absl/strings/numbers.h"
 | 
				
			||||||
#include "absl/strings/str_join.h"
 | 
					 | 
				
			||||||
#include "absl/strings/str_split.h"
 | 
					 | 
				
			||||||
#include "mediapipe/framework/calculator.pb.h"
 | 
					#include "mediapipe/framework/calculator.pb.h"
 | 
				
			||||||
#include "mediapipe/framework/port/canonical_errors.h"
 | 
					 | 
				
			||||||
#include "mediapipe/framework/port/logging.h"
 | 
					 | 
				
			||||||
#include "mediapipe/framework/port/numbers.h"
 | 
					#include "mediapipe/framework/port/numbers.h"
 | 
				
			||||||
#include "mediapipe/framework/port/ret_check.h"
 | 
					#include "mediapipe/framework/port/ret_check.h"
 | 
				
			||||||
#include "mediapipe/framework/port/status.h"
 | 
					#include "mediapipe/framework/port/status.h"
 | 
				
			||||||
| 
						 | 
					@ -183,8 +177,7 @@ FieldType GetFieldType(const TemplateExpression& rule) {
 | 
				
			||||||
int FieldCount(const FieldValue& base, ProtoPath field_path,
 | 
					int FieldCount(const FieldValue& base, ProtoPath field_path,
 | 
				
			||||||
               FieldType field_type) {
 | 
					               FieldType field_type) {
 | 
				
			||||||
  int result = 0;
 | 
					  int result = 0;
 | 
				
			||||||
  CHECK(
 | 
					  CHECK_OK(ProtoUtilLite::GetFieldCount(base, field_path, field_type, &result));
 | 
				
			||||||
      ProtoUtilLite::GetFieldCount(base, field_path, field_type, &result).ok());
 | 
					 | 
				
			||||||
  return result;
 | 
					  return result;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -471,7 +471,7 @@ class TemplateParser::Parser::ParserImpl {
 | 
				
			||||||
                    "\" stored in google.protobuf.Any.");
 | 
					                    "\" stored in google.protobuf.Any.");
 | 
				
			||||||
        return false;
 | 
					        return false;
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
      DO(ConsumeAnyValue(value_descriptor, &serialized_value));
 | 
					      DO(ConsumeAnyValue(any_value_field, value_descriptor, &serialized_value));
 | 
				
			||||||
      if (singular_overwrite_policy_ == FORBID_SINGULAR_OVERWRITES) {
 | 
					      if (singular_overwrite_policy_ == FORBID_SINGULAR_OVERWRITES) {
 | 
				
			||||||
        // Fail if any_type_url_field has already been specified.
 | 
					        // Fail if any_type_url_field has already been specified.
 | 
				
			||||||
        if ((!any_type_url_field->is_repeated() &&
 | 
					        if ((!any_type_url_field->is_repeated() &&
 | 
				
			||||||
| 
						 | 
					@ -709,7 +709,7 @@ class TemplateParser::Parser::ParserImpl {
 | 
				
			||||||
    // If the parse information tree is not NULL, create a nested one
 | 
					    // If the parse information tree is not NULL, create a nested one
 | 
				
			||||||
    // for the nested message.
 | 
					    // for the nested message.
 | 
				
			||||||
    ParseInfoTree* parent = parse_info_tree_;
 | 
					    ParseInfoTree* parent = parse_info_tree_;
 | 
				
			||||||
    if (parent != NULL) {
 | 
					    if (parent) {
 | 
				
			||||||
      parse_info_tree_ = parent->CreateNested(field);
 | 
					      parse_info_tree_ = parent->CreateNested(field);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1191,8 +1191,20 @@ class TemplateParser::Parser::ParserImpl {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // A helper function for reconstructing Any::value. Consumes a text of
 | 
					  // A helper function for reconstructing Any::value. Consumes a text of
 | 
				
			||||||
  // full_type_name, then serializes it into serialized_value.
 | 
					  // full_type_name, then serializes it into serialized_value.
 | 
				
			||||||
  bool ConsumeAnyValue(const Descriptor* value_descriptor,
 | 
					  bool ConsumeAnyValue(const FieldDescriptor* field,
 | 
				
			||||||
 | 
					                       const Descriptor* value_descriptor,
 | 
				
			||||||
                       std::string* serialized_value) {
 | 
					                       std::string* serialized_value) {
 | 
				
			||||||
 | 
					    if (--recursion_limit_ < 0) {
 | 
				
			||||||
 | 
					      ReportError("Message is too deep");
 | 
				
			||||||
 | 
					      return false;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    // If the parse information tree is not NULL, create a nested one
 | 
				
			||||||
 | 
					    // for the nested message.
 | 
				
			||||||
 | 
					    ParseInfoTree* parent = parse_info_tree_;
 | 
				
			||||||
 | 
					    if (parent) {
 | 
				
			||||||
 | 
					      parse_info_tree_ = parent->CreateNested(field);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    DynamicMessageFactory factory;
 | 
					    DynamicMessageFactory factory;
 | 
				
			||||||
    const Message* value_prototype = factory.GetPrototype(value_descriptor);
 | 
					    const Message* value_prototype = factory.GetPrototype(value_descriptor);
 | 
				
			||||||
    if (value_prototype == NULL) {
 | 
					    if (value_prototype == NULL) {
 | 
				
			||||||
| 
						 | 
					@ -1214,6 +1226,11 @@ class TemplateParser::Parser::ParserImpl {
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
      value->AppendToString(serialized_value);
 | 
					      value->AppendToString(serialized_value);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ++recursion_limit_;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Reset the parse information tree.
 | 
				
			||||||
 | 
					    parse_info_tree_ = parent;
 | 
				
			||||||
    return true;
 | 
					    return true;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user