diff options
| -rw-r--r-- | indra/llcommon/llsdutil.cpp | 22 | 
1 files changed, 22 insertions, 0 deletions
diff --git a/indra/llcommon/llsdutil.cpp b/indra/llcommon/llsdutil.cpp index eb3a96b133..c2fe15e9b7 100644 --- a/indra/llcommon/llsdutil.cpp +++ b/indra/llcommon/llsdutil.cpp @@ -214,6 +214,8 @@ BOOL compare_llsd_with_template(  	const LLSD& template_llsd,  	LLSD& resultant_llsd)  { +    LL_PROFILE_ZONE_SCOPED +  	if (  		llsd_to_test.isUndefined() &&  		template_llsd.isDefined() ) @@ -335,6 +337,8 @@ bool filter_llsd_with_template(  	const LLSD & template_llsd,  	LLSD & resultant_llsd)  { +    LL_PROFILE_ZONE_SCOPED +  	if (llsd_to_test.isUndefined() && template_llsd.isDefined())  	{  		resultant_llsd = template_llsd; @@ -529,6 +533,8 @@ class TypeLookup  public:      TypeLookup()      { +        LL_PROFILE_ZONE_SCOPED +          for (const Data *di(boost::begin(typedata)), *dend(boost::end(typedata)); di != dend; ++di)          {              mMap[di->type] = di->name; @@ -537,6 +543,8 @@ public:      std::string lookup(LLSD::Type type) const      { +        LL_PROFILE_ZONE_SCOPED +          MapType::const_iterator found = mMap.find(type);          if (found != mMap.end())          { @@ -587,6 +595,8 @@ static std::string match_types(LLSD::Type expect, // prototype.type()                                 LLSD::Type actual,        // type we're checking                                 const std::string& pfx)   // as for llsd_matches  { +    LL_PROFILE_ZONE_SCOPED +      // Trivial case: if the actual type is exactly what we expect, we're good.      if (actual == expect)          return ""; @@ -624,6 +634,8 @@ static std::string match_types(LLSD::Type expect, // prototype.type()  // see docstring in .h file  std::string llsd_matches(const LLSD& prototype, const LLSD& data, const std::string& pfx)  { +    LL_PROFILE_ZONE_SCOPED +      // An undefined prototype means that any data is valid.      // An undefined slot in an array or map prototype means that any data      // may fill that slot. @@ -756,6 +768,8 @@ std::string llsd_matches(const LLSD& prototype, const LLSD& data, const std::str  bool llsd_equals(const LLSD& lhs, const LLSD& rhs, int bits)  { +    LL_PROFILE_ZONE_SCOPED +      // We're comparing strict equality of LLSD representation rather than      // performing any conversions. So if the types aren't equal, the LLSD      // values aren't equal. @@ -864,6 +878,8 @@ namespace llsd  LLSD& drill(LLSD& blob, const LLSD& rawPath)  { +    LL_PROFILE_ZONE_SCOPED +      // Treat rawPath uniformly as an array. If it's not already an array,      // store it as the only entry in one. (But let's say Undefined means an      // empty array.) @@ -889,6 +905,8 @@ LLSD& drill(LLSD& blob, const LLSD& rawPath)      // path entry that's bad.      for (LLSD::Integer i = 0; i < path.size(); ++i)      { +        LL_PROFILE_ZONE_NUM( i ) +          const LLSD& key{path[i]};          if (key.isString())          { @@ -917,6 +935,8 @@ LLSD& drill(LLSD& blob, const LLSD& rawPath)  LLSD drill(const LLSD& blob, const LLSD& path)  { +    LL_PROFILE_ZONE_SCOPED +      // non-const drill() does exactly what we want. Temporarily cast away      // const-ness and use that.      return drill(const_cast<LLSD&>(blob), path); @@ -929,6 +949,8 @@ LLSD drill(const LLSD& blob, const LLSD& path)  // filter may be include to exclude/include keys in a map.   LLSD llsd_clone(LLSD value, LLSD filter)  { +    LL_PROFILE_ZONE_SCOPED +      LLSD clone;      bool has_filter(filter.isMap());  | 
