summaryrefslogtreecommitdiff
path: root/indra/llcommon/llinitparam.cpp
diff options
context:
space:
mode:
authorRichard Linden <none@none>2012-10-22 22:46:45 -0700
committerRichard Linden <none@none>2012-10-22 22:46:45 -0700
commit50ad343366f5e18ced40e24e2a1cc2399411c7e5 (patch)
tree328285a0daf5c756934a04788729939d5a0e3c94 /indra/llcommon/llinitparam.cpp
parentbfe85fb24b30a24e08b48fdb2c734da0143fe845 (diff)
SH-3405 WIP convert existing stats to lltrace system
added return value to serialize function to track if any values were written
Diffstat (limited to 'indra/llcommon/llinitparam.cpp')
-rw-r--r--indra/llcommon/llinitparam.cpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/indra/llcommon/llinitparam.cpp b/indra/llcommon/llinitparam.cpp
index 54e98e66f3..d6326a7c11 100644
--- a/indra/llcommon/llinitparam.cpp
+++ b/indra/llcommon/llinitparam.cpp
@@ -180,8 +180,9 @@ namespace LLInitParam
return true;
}
- void BaseBlock::serializeBlock(Parser& parser, Parser::name_stack_t& name_stack, const LLInitParam::BaseBlock* diff_block) const
+ bool BaseBlock::serializeBlock(Parser& parser, Parser::name_stack_t& name_stack, const LLInitParam::BaseBlock* diff_block) const
{
+ bool serialized = false;
// named param is one like LLView::Params::follows
// unnamed param is like LLView::Params::rect - implicit
const BlockDescriptor& block_data = mostDerivedBlockDescriptor();
@@ -193,10 +194,10 @@ namespace LLInitParam
param_handle_t param_handle = (*it)->mParamHandle;
const Param* param = getParamFromHandle(param_handle);
ParamDescriptor::serialize_func_t serialize_func = (*it)->mSerializeFunc;
- if (serialize_func)
+ if (serialize_func && param->anyProvided())
{
const Param* diff_param = diff_block ? diff_block->getParamFromHandle(param_handle) : NULL;
- serialize_func(*param, parser, name_stack, diff_param);
+ serialized |= serialize_func(*param, parser, name_stack, diff_param);
}
}
@@ -232,10 +233,13 @@ namespace LLInitParam
name_stack.push_back(std::make_pair(it->first, !duplicate));
const Param* diff_param = diff_block ? diff_block->getParamFromHandle(param_handle) : NULL;
- serialize_func(*param, parser, name_stack, diff_param);
+ serialized |= serialize_func(*param, parser, name_stack, diff_param);
name_stack.pop_back();
}
}
+
+ // was anything serialized in this block?
+ return serialized;
}
bool BaseBlock::inspectBlock(Parser& parser, Parser::name_stack_t name_stack, S32 min_count, S32 max_count) const
@@ -354,7 +358,7 @@ namespace LLInitParam
}
//static
- void BaseBlock::addParam(BlockDescriptor& block_data, const ParamDescriptorPtr in_param, const char* char_name)
+ void BaseBlock::addParam(BlockDescriptor& block_data, ParamDescriptorPtr in_param, const char* char_name)
{
// create a copy of the param descriptor in mAllParams
// so other data structures can store a pointer to it