Skip to content

Commit

Permalink
Refactor|libdeng2|Record: Improved addArray() method
Browse files Browse the repository at this point in the history
An array value can now be provided at time of creation.
  • Loading branch information
skyjake committed Dec 8, 2012
1 parent 20ff40f commit 9dd9af7
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 4 deletions.
5 changes: 4 additions & 1 deletion doomsday/libdeng2/include/de/data/record.h
Expand Up @@ -32,6 +32,7 @@

namespace de
{
class ArrayValue;
class Function;

/**
Expand Down Expand Up @@ -154,10 +155,12 @@ namespace de
* array values.
*
* @param variableName Name of the variable.
* @param array Value for the new variable (ownership taken). If not
* provided, an empty array will be created for the variable.
*
* @return The array variable.
*/
Variable &addArray(String const &variableName);
Variable &addArray(String const &variableName, ArrayValue *array = 0);

/**
* Adds a dictionary variable to the record. The variable is set up to only accept
Expand Down
2 changes: 1 addition & 1 deletion doomsday/libdeng2/src/core/app.cpp
Expand Up @@ -198,7 +198,7 @@ App::App(int &argc, char **argv, GUIMode guiMode)
ArrayValue *num = new ArrayValue;
*num << NumberValue(ver.major) << NumberValue(ver.minor)
<< NumberValue(ver.patch) << NumberValue(ver.build);
(mod.addArray("VERSION") = num).setReadOnly();
mod.addArray("VERSION", num).setReadOnly();
mod.addText("TEXT", ver.asText()).setReadOnly();
mod.addNumber("BUILD", ver.build).setReadOnly();
mod.addText("OS", Version::operatingSystem()).setReadOnly();
Expand Down
4 changes: 2 additions & 2 deletions doomsday/libdeng2/src/data/record.cpp
Expand Up @@ -247,11 +247,11 @@ Variable &Record::addTime(String const &name, Time const &time)
return add(new Variable(name, new TimeValue(time), Variable::AllowTime));
}

Variable &Record::addArray(String const &name)
Variable &Record::addArray(String const &name, ArrayValue *array)
{
/// @throw Variable::NameError @a name is not a valid variable name.
Variable::verifyName(name);
return add(new Variable(name, new ArrayValue(), Variable::AllowArray));
return add(new Variable(name, array? array : new ArrayValue, Variable::AllowArray));
}

Variable &Record::addDictionary(String const &name)
Expand Down

0 comments on commit 9dd9af7

Please sign in to comment.