Eliminate ArrayInit.set(litstr)
In runtime code, use StaticString for literals or String for computed
char strings. In test code, I justed used String("literal") to keep
the conversion simpler. I think tests are ultimately easier to maintain
without the StaticString treatment.
Esse commit está contido em:
@@ -39,19 +39,37 @@ namespace HPHP {
|
||||
Array(ArrayInit(6, ArrayInit::vectorInit).set(e1).set(e2).set(e3). \
|
||||
set(e4).set(e5).set(e6).create())
|
||||
|
||||
#define CREATE_MAP1(n, e) Array(ArrayInit(1).set(n, e).create())
|
||||
#define CREATE_MAP2(n1, e1, n2, e2) \
|
||||
Array(ArrayInit(2).set(n1, e1).set(n2, e2).create())
|
||||
#define CREATE_MAP3(n1, e1, n2, e2, n3, e3) \
|
||||
Array(ArrayInit(3).set(n1, e1).set(n2, e2).set(n3, e3).create())
|
||||
#define CREATE_MAP4(n1, e1, n2, e2, n3, e3, n4, e4) \
|
||||
Array(ArrayInit(4).set(n1, e1).set(n2, e2).set(n3, e3).set(n4, e4).create())
|
||||
#define CREATE_MAP5(n1, e1, n2, e2, n3, e3, n4, e4, n5, e5) \
|
||||
Array(ArrayInit(5).set(n1, e1).set(n2, e2).set(n3, e3). \
|
||||
set(n4, e4).set(n5, e5).create())
|
||||
#define CREATE_MAP6(n1, e1, n2, e2, n3, e3, n4, e4, n5, e5, n6, e6) \
|
||||
Array(ArrayInit(6).set(n1, e1).set(n2, e2).set(n3, e3).set(n4, e4). \
|
||||
set(n5, e5).set(n6, e6).create())
|
||||
inline String initkey(const char* s) { return String(s); }
|
||||
inline int64_t initkey(int k) { return k; }
|
||||
inline int64_t initkey(int64_t k) { return k; }
|
||||
inline CStrRef initkey(CStrRef k) { return k; }
|
||||
|
||||
#define CREATE_MAP1(n, e) Array(ArrayInit(1).set(initkey(n), e).create())
|
||||
#define CREATE_MAP2(n1, e1, n2, e2)\
|
||||
Array(ArrayInit(2).set(initkey(n1), e1)\
|
||||
.set(initkey(n2), e2).create())
|
||||
#define CREATE_MAP3(n1, e1, n2, e2, n3, e3)\
|
||||
Array(ArrayInit(3).set(initkey(n1), e1)\
|
||||
.set(initkey(n2), e2)\
|
||||
.set(initkey(n3), e3).create())
|
||||
#define CREATE_MAP4(n1, e1, n2, e2, n3, e3, n4, e4)\
|
||||
Array(ArrayInit(4).set(initkey(n1), e1)\
|
||||
.set(initkey(n2), e2)\
|
||||
.set(initkey(n3), e3)\
|
||||
.set(initkey(n4), e4).create())
|
||||
#define CREATE_MAP5(n1, e1, n2, e2, n3, e3, n4, e4, n5, e5)\
|
||||
Array(ArrayInit(5).set(initkey(n1), e1)\
|
||||
.set(initkey(n2), e2)\
|
||||
.set(initkey(n3), e3)\
|
||||
.set(initkey(n4), e4)\
|
||||
.set(initkey(n5), e5).create())
|
||||
#define CREATE_MAP6(n1, e1, n2, e2, n3, e3, n4, e4, n5, e5, n6, e6)\
|
||||
Array(ArrayInit(6).set(initkey(n1), e1)\
|
||||
.set(initkey(n2), e2)\
|
||||
.set(initkey(n3), e3)\
|
||||
.set(initkey(n4), e4)\
|
||||
.set(initkey(n5), e5)\
|
||||
.set(initkey(n6), e6).create())
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// ArrayInit
|
||||
@@ -120,15 +138,9 @@ public:
|
||||
return *this;
|
||||
}
|
||||
|
||||
ArrayInit &set(litstr name, CVarRef v, bool keyConverted = false) {
|
||||
String key(name);
|
||||
if (keyConverted) {
|
||||
m_data->set(key, v, false);
|
||||
} else {
|
||||
m_data->set(key.toKey(), v, false);
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
// set(const char*) deprecated. Use set(CStrRef) with a StaticString,
|
||||
// if you have a literal, or String otherwise.
|
||||
ArrayInit &set(const char*, CVarRef v, bool keyConverted = false) = delete;
|
||||
|
||||
ArrayInit &set(CStrRef name, CVarRef v, bool keyConverted = false) {
|
||||
if (keyConverted) {
|
||||
|
||||
@@ -147,22 +147,23 @@ void CmdConfig::onClientImpl(DebuggerClient &client) {
|
||||
listVars(client);
|
||||
}
|
||||
|
||||
static const StaticString s_BypassAccessCheck("BypassAccessCheck");
|
||||
static const StaticString s_LogFile("LogFile");
|
||||
static const StaticString s_PrintLevel("PrintLevel");
|
||||
static const StaticString s_SmallStep("SmallStep");
|
||||
static const StaticString s_StackArgs("StackArgs");
|
||||
static const StaticString s_ApiModeSerialize("ApiModeSerialize");
|
||||
static const StaticString
|
||||
s_BypassAccessCheck("BypassAccessCheck"),
|
||||
s_LogFile("LogFile"),
|
||||
s_PrintLevel("PrintLevel"),
|
||||
s_SmallStep("SmallStep"),
|
||||
s_StackArgs("StackArgs"),
|
||||
s_ApiModeSerialize("ApiModeSerialize");
|
||||
|
||||
void CmdConfig::setClientOutput(DebuggerClient &client) {
|
||||
client.setOutputType(DebuggerClient::OTValues);
|
||||
ArrayInit values(6);
|
||||
values.set("BypassAccessCheck", client.getDebuggerBypassCheck());
|
||||
values.set("LogFile", client.getLogFile());
|
||||
values.set("PrintLevel", client.getDebuggerPrintLevel());
|
||||
values.set("SmallStep", client.getDebuggerSmallStep());
|
||||
values.set("StackArgs", client.getDebuggerStackArgs());
|
||||
values.set("ApiModeSerialize", client.getDebuggerClientApiModeSerialize());
|
||||
values.set(s_BypassAccessCheck, client.getDebuggerBypassCheck());
|
||||
values.set(s_LogFile, client.getLogFile());
|
||||
values.set(s_PrintLevel, client.getDebuggerPrintLevel());
|
||||
values.set(s_SmallStep, client.getDebuggerSmallStep());
|
||||
values.set(s_StackArgs, client.getDebuggerStackArgs());
|
||||
values.set(s_ApiModeSerialize, client.getDebuggerClientApiModeSerialize());
|
||||
client.setOTValues(values.create());
|
||||
}
|
||||
|
||||
|
||||
@@ -61,8 +61,8 @@ static const StaticString s_value("value");
|
||||
void CmdEval::setClientOutput(DebuggerClient &client) {
|
||||
client.setOutputType(DebuggerClient::OTValues);
|
||||
ArrayInit values(2);
|
||||
values.set("body", m_body);
|
||||
values.set("value", m_output);
|
||||
values.set(s_body, m_body);
|
||||
values.set(s_value, m_output);
|
||||
client.setOTValues(values.create());
|
||||
}
|
||||
|
||||
|
||||
@@ -195,14 +195,15 @@ Variant f_http_build_query(CVarRef formdata,
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
static const StaticString s_scheme("scheme");
|
||||
static const StaticString s_host("host");
|
||||
static const StaticString s_user("user");
|
||||
static const StaticString s_pass("pass");
|
||||
static const StaticString s_path("path");
|
||||
static const StaticString s_query("query");
|
||||
static const StaticString s_fragment("fragment");
|
||||
static const StaticString s_port("port");
|
||||
static const StaticString
|
||||
s_scheme("scheme"),
|
||||
s_host("host"),
|
||||
s_user("user"),
|
||||
s_pass("pass"),
|
||||
s_path("path"),
|
||||
s_query("query"),
|
||||
s_fragment("fragment"),
|
||||
s_port("port");
|
||||
|
||||
#define RETURN_COMPONENT(name) \
|
||||
if (resource.name != NULL) { \
|
||||
@@ -263,7 +264,7 @@ Variant f_parse_url(CStrRef url, int component /* = -1 */) {
|
||||
SET_COMPONENT(query);
|
||||
SET_COMPONENT(fragment);
|
||||
if (resource.port) {
|
||||
ret.set("port", (int64_t)resource.port);
|
||||
ret.set(s_port, (int64_t)resource.port);
|
||||
}
|
||||
return ret.create();
|
||||
}
|
||||
|
||||
@@ -86,7 +86,7 @@ bool Test::logTestResults(std::string name, std::string details, int pass,
|
||||
|
||||
char summary[100];
|
||||
sprintf(summary, "PASSED (%d)", pass);
|
||||
std::string status = "passed";
|
||||
const char* status = "passed";
|
||||
|
||||
if (skip > 0) {
|
||||
sprintf(summary, "SKIPPED (%d)", skip);
|
||||
@@ -98,14 +98,14 @@ bool Test::logTestResults(std::string name, std::string details, int pass,
|
||||
}
|
||||
|
||||
ArrayInit data(8);
|
||||
data.set("type", "hphp");
|
||||
data.set("name", name);
|
||||
data.set("contacts", null_array);
|
||||
data.set("endedTime", time(nullptr));
|
||||
data.set("durationSecs", mseconds / 1000.0);
|
||||
data.set("status", status);
|
||||
data.set("summary", std::string(summary));
|
||||
data.set("details", details);
|
||||
data.set(String("type"), "hphp");
|
||||
data.set(String("name"), name);
|
||||
data.set(String("contacts"), null_array);
|
||||
data.set(String("endedTime"), time(nullptr));
|
||||
data.set(String("durationSecs"), mseconds / 1000.0);
|
||||
data.set(String("status"), status);
|
||||
data.set(String("summary"), std::string(summary));
|
||||
data.set(String("details"), details);
|
||||
|
||||
if (!logger.logTest(Array(data.create()))) {
|
||||
printf("WARNING: Logging %s failed\n", name.c_str());
|
||||
|
||||
@@ -453,13 +453,13 @@ bool TestExtArray::test_array_merge_recursive() {
|
||||
}
|
||||
{
|
||||
Array ar1(ArrayInit(2).
|
||||
set("color", CREATE_MAP1("favorite", "red")).
|
||||
set(String("color"), CREATE_MAP1("favorite", "red")).
|
||||
set(1, 5).
|
||||
create());
|
||||
|
||||
Array ar2(ArrayInit(2).set(10).
|
||||
set("color", Array(ArrayInit(2).
|
||||
set("favorite", "green").
|
||||
set(String("color"), Array(ArrayInit(2).
|
||||
set(String("favorite"), "green").
|
||||
set("blue").create())).
|
||||
create());
|
||||
|
||||
@@ -488,11 +488,11 @@ bool TestExtArray::test_array_merge_recursive() {
|
||||
|
||||
bool TestExtArray::test_array_merge() {
|
||||
{
|
||||
Array array1(ArrayInit(3).set("color", "red").
|
||||
Array array1(ArrayInit(3).set(String("color"), "red").
|
||||
set(2).set(4).create());
|
||||
Array array2(ArrayInit(5).set("a").set("b").
|
||||
set("color", "green").
|
||||
set("shape", "trapezoid").
|
||||
Array array2(ArrayInit(5).set(String("a")).set("b").
|
||||
set(String("color"), "green").
|
||||
set(String("shape"), "trapezoid").
|
||||
set(4).create());
|
||||
Array result = f_array_merge(2, array1, CREATE_VECTOR1(array2));
|
||||
VS(f_print_r(result, true),
|
||||
@@ -573,13 +573,13 @@ bool TestExtArray::test_array_merge() {
|
||||
|
||||
bool TestExtArray::test_array_replace_recursive() {
|
||||
Array ar1(ArrayInit(2).
|
||||
set("color", CREATE_MAP1("favorite", "red")).
|
||||
set(String("color"), CREATE_MAP1("favorite", "red")).
|
||||
set(5).create());
|
||||
|
||||
Array ar2(ArrayInit(2).
|
||||
set(10).
|
||||
set("color", Array(ArrayInit(2).
|
||||
set("favorite", "green").
|
||||
set(String("color"), Array(ArrayInit(2).
|
||||
set(String("favorite"), "green").
|
||||
set("blue").create())).
|
||||
create());
|
||||
|
||||
@@ -600,11 +600,11 @@ bool TestExtArray::test_array_replace_recursive() {
|
||||
|
||||
bool TestExtArray::test_array_replace() {
|
||||
{
|
||||
Array array1(ArrayInit(3).set("color", "red").
|
||||
Array array1(ArrayInit(3).set(String("color"), "red").
|
||||
set(2).set(4).create());
|
||||
Array array2(ArrayInit(5).set("a").set("b").
|
||||
set("color", "green").
|
||||
set("shape", "trapezoid").
|
||||
set(String("color"), "green").
|
||||
set(String("shape"), "trapezoid").
|
||||
set(4).create());
|
||||
Array result = f_array_replace(2, array1, CREATE_VECTOR1(array2));
|
||||
VS(f_print_r(result, true),
|
||||
@@ -1040,7 +1040,7 @@ bool TestExtArray::test_array_sum() {
|
||||
bool TestExtArray::test_array_unique() {
|
||||
{
|
||||
Array input(ArrayInit(5).
|
||||
set("a", "green").set("red").set("b", "green").
|
||||
set(String("a"), "green").set("red").set(String("b"), "green").
|
||||
set("blue").set("red").create());
|
||||
Array result = f_array_unique(input);
|
||||
VS(f_print_r(result, true),
|
||||
@@ -1456,9 +1456,9 @@ bool TestExtArray::test_range() {
|
||||
}
|
||||
|
||||
bool TestExtArray::test_array_diff() {
|
||||
Array array1(ArrayInit(4).set("a", "green").set("red").
|
||||
set("blue").set("red").create());
|
||||
Array array2(ArrayInit(3).set("b", "green").set("yellow").
|
||||
Array array1(ArrayInit(4).set(String("a"), "green").set("red").
|
||||
set(String("blue")).set("red").create());
|
||||
Array array2(ArrayInit(3).set(String("b"), "green").set("yellow").
|
||||
set("red").create());
|
||||
Array result = f_array_diff(2, array1, array2);
|
||||
VS(f_print_r(result, true),
|
||||
@@ -1491,13 +1491,13 @@ bool TestExtArray::test_array_udiff() {
|
||||
|
||||
bool TestExtArray::test_array_diff_assoc() {
|
||||
{
|
||||
Array array1(ArrayInit(4).set("a", "green").
|
||||
set("b", "brown").
|
||||
set("c", "blue").
|
||||
set("red").create());
|
||||
Array array2(ArrayInit(3).set("a", "green").
|
||||
Array array1(ArrayInit(4).set(String("a"), "green").
|
||||
set(String("b"), "brown").
|
||||
set(String("c"), "blue").
|
||||
set("red").create());
|
||||
Array array2(ArrayInit(3).set(String("a"), "green").
|
||||
set("yellow").
|
||||
set("red").create());
|
||||
set("red").create());
|
||||
Array result = f_array_diff_assoc(2, array1, array2);
|
||||
VS(f_print_r(result, true),
|
||||
"Array\n"
|
||||
@@ -1523,11 +1523,11 @@ bool TestExtArray::test_array_diff_assoc() {
|
||||
|
||||
bool TestExtArray::test_array_diff_uassoc() {
|
||||
{
|
||||
Array array1(ArrayInit(4).set("a", "green").
|
||||
set("b", "brown").
|
||||
set("c", "blue").
|
||||
Array array1(ArrayInit(4).set(String("a"), "green").
|
||||
set(String("b"), "brown").
|
||||
set(String("c"), "blue").
|
||||
set("red").create());
|
||||
Array array2(ArrayInit(3).set("a", "green").
|
||||
Array array2(ArrayInit(3).set(String("a"), "green").
|
||||
set("yellow").
|
||||
set("red").create());
|
||||
Array result = f_array_diff_uassoc(3, array1, array2, "comp_func");
|
||||
@@ -1590,10 +1590,10 @@ bool TestExtArray::test_array_diff_ukey() {
|
||||
}
|
||||
|
||||
bool TestExtArray::test_array_intersect() {
|
||||
Array array1(ArrayInit(3).set("a", "green").
|
||||
Array array1(ArrayInit(3).set(String("a"), "green").
|
||||
set("red").
|
||||
set("blue").create());
|
||||
Array array2(ArrayInit(3).set("b", "green").
|
||||
Array array2(ArrayInit(3).set(String("b"), "green").
|
||||
set("yellow").
|
||||
set("red").create());
|
||||
VS(f_array_intersect(2, array1, array2),
|
||||
@@ -1602,12 +1602,12 @@ bool TestExtArray::test_array_intersect() {
|
||||
}
|
||||
|
||||
bool TestExtArray::test_array_uintersect() {
|
||||
Array array1(ArrayInit(4).set("a", "green").
|
||||
set("b", "brown").
|
||||
set("c", "blue").
|
||||
Array array1(ArrayInit(4).set(String("a"), "green").
|
||||
set(String("b"), "brown").
|
||||
set(String("c"), "blue").
|
||||
set("red").create());
|
||||
Array array2(ArrayInit(4).set("a", "GREEN").
|
||||
set("B", "brown").
|
||||
Array array2(ArrayInit(4).set(String("a"), "GREEN").
|
||||
set(String("B"), "brown").
|
||||
set("yellow").
|
||||
set("red").create());
|
||||
VS(f_print_r(f_array_uintersect(3, array1, array2, "strcasecmp"), true),
|
||||
@@ -1622,11 +1622,11 @@ bool TestExtArray::test_array_uintersect() {
|
||||
}
|
||||
|
||||
bool TestExtArray::test_array_intersect_assoc() {
|
||||
Array array1(ArrayInit(4).set("a", "green").
|
||||
set("b", "brown").
|
||||
set("c", "blue").
|
||||
Array array1(ArrayInit(4).set(String("a"), "green").
|
||||
set(String("b"), "brown").
|
||||
set(String("c"), "blue").
|
||||
set("red").create());
|
||||
Array array2(ArrayInit(3).set("a", "green").
|
||||
Array array2(ArrayInit(3).set(String("a"), "green").
|
||||
set("yellow").
|
||||
set("red").create());
|
||||
VS(f_array_intersect_assoc(2, array1, array2), CREATE_MAP1("a", "green"));
|
||||
@@ -1634,12 +1634,12 @@ bool TestExtArray::test_array_intersect_assoc() {
|
||||
}
|
||||
|
||||
bool TestExtArray::test_array_intersect_uassoc() {
|
||||
Array array1(ArrayInit(4).set("a", "green").
|
||||
set("b", "brown").
|
||||
set("c", "blue").
|
||||
Array array1(ArrayInit(4).set(String("a"), "green").
|
||||
set(String("b"), "brown").
|
||||
set(String("c"), "blue").
|
||||
set("red").create());
|
||||
Array array2(ArrayInit(4).set("a", "GREEN").
|
||||
set("B", "brown").
|
||||
Array array2(ArrayInit(4).set(String("a"), "GREEN").
|
||||
set(String("B"), "brown").
|
||||
set("yellow").
|
||||
set("red").create());
|
||||
VS(f_array_intersect_uassoc(3, array1, array2, "strcasecmp"),
|
||||
@@ -1648,12 +1648,12 @@ bool TestExtArray::test_array_intersect_uassoc() {
|
||||
}
|
||||
|
||||
bool TestExtArray::test_array_uintersect_assoc() {
|
||||
Array array1(ArrayInit(4).set("a", "green").
|
||||
set("b", "brown").
|
||||
set("c", "blue").
|
||||
Array array1(ArrayInit(4).set(String("a"), "green").
|
||||
set(String("b"), "brown").
|
||||
set(String("c"), "blue").
|
||||
set("red").create());
|
||||
Array array2(ArrayInit(4).set("a", "GREEN").
|
||||
set("B", "brown").
|
||||
Array array2(ArrayInit(4).set(String("a"), "GREEN").
|
||||
set(String("B"), "brown").
|
||||
set("yellow").
|
||||
set("red").create());
|
||||
VS(f_array_uintersect_assoc(3, array1, array2, "strcasecmp"),
|
||||
@@ -1662,12 +1662,12 @@ bool TestExtArray::test_array_uintersect_assoc() {
|
||||
}
|
||||
|
||||
bool TestExtArray::test_array_uintersect_uassoc() {
|
||||
Array array1(ArrayInit(4).set("a", "green").
|
||||
set("b", "brown").
|
||||
set("c", "blue").
|
||||
Array array1(ArrayInit(4).set(String("a"), "green").
|
||||
set(String("b"), "brown").
|
||||
set(String("c"), "blue").
|
||||
set("red").create());
|
||||
Array array2(ArrayInit(4).set("a", "GREEN").
|
||||
set("B", "brown").
|
||||
Array array2(ArrayInit(4).set(String("a"), "GREEN").
|
||||
set(String("B"), "brown").
|
||||
set("yellow").
|
||||
set("red").create());
|
||||
VS(f_array_uintersect_uassoc(4, array1, array2, "strcasecmp", "strcasecmp"),
|
||||
|
||||
@@ -254,17 +254,17 @@ bool TestExtMailparse::test_mailparse_msg_get_part() {
|
||||
"from 66.178.40.49 by BAY116-DAV8.phx.gbl with DAV;");
|
||||
VS(info,
|
||||
Array(ArrayInit(11).
|
||||
set("headers", CREATE_MAP1("received", received)).
|
||||
set("starting-pos", 0).
|
||||
set("starting-pos-body", 200).
|
||||
set("ending-pos", 200).
|
||||
set("ending-pos-body", 200).
|
||||
set("line-count", 6).
|
||||
set("body-line-count", 0).
|
||||
set("charset", "us-ascii").
|
||||
set("transfer-encoding", "8bit").
|
||||
set("content-type", "text/plain").
|
||||
set("content-base", "/").
|
||||
set(String("headers"), CREATE_MAP1("received", received)).
|
||||
set(String("starting-pos"), 0).
|
||||
set(String("starting-pos-body"), 200).
|
||||
set(String("ending-pos"), 200).
|
||||
set(String("ending-pos-body"), 200).
|
||||
set(String("line-count"), 6).
|
||||
set(String("body-line-count"), 0).
|
||||
set(String("charset"), "us-ascii").
|
||||
set(String("transfer-encoding"), "8bit").
|
||||
set(String("content-type"), "text/plain").
|
||||
set(String("content-base"), "/").
|
||||
create()));
|
||||
}
|
||||
|
||||
|
||||
@@ -96,12 +96,12 @@ bool TestExtUrl::test_http_build_query() {
|
||||
}
|
||||
{
|
||||
Array data = Array(ArrayInit(6).
|
||||
set("foo").
|
||||
set("bar").
|
||||
set("baz").
|
||||
set("boom").
|
||||
set("cow", "milk").
|
||||
set("php", "hypertext processor").
|
||||
set(String("foo")).
|
||||
set(String("bar")).
|
||||
set(String("baz")).
|
||||
set(String("boom")).
|
||||
set(String("cow"), "milk").
|
||||
set(String("php"), "hypertext processor").
|
||||
create());
|
||||
VS(f_http_build_query(data),
|
||||
"0=foo&1=bar&2=baz&3=boom&cow=milk&php=hypertext+processor");
|
||||
@@ -111,14 +111,14 @@ bool TestExtUrl::test_http_build_query() {
|
||||
}
|
||||
{
|
||||
Array data = Array(ArrayInit(4).
|
||||
set("user",
|
||||
set(String("user"),
|
||||
CREATE_MAP4("name", "Bob Smith",
|
||||
"age", 47,
|
||||
"sex", "M",
|
||||
"dob", "5/12/1956")).
|
||||
set("pastimes",
|
||||
set(String("pastimes"),
|
||||
CREATE_VECTOR4("golf", "opera", "poker", "rap")).
|
||||
set("children",
|
||||
set(String("children"),
|
||||
CREATE_MAP2("bobby", CREATE_MAP2("age",12,"sex","M"),
|
||||
"sally", CREATE_MAP2("age", 8,"sex","F"))).
|
||||
set("CEO").
|
||||
|
||||
@@ -44,14 +44,14 @@ bool TestLogger::initializeRun() {
|
||||
hostname = buf;
|
||||
|
||||
ArrayInit data(8);
|
||||
data.set("startedTime", time(nullptr));
|
||||
data.set("stillRunning", true);
|
||||
data.set("hostname", hostname);
|
||||
data.set("username", getpwuid(getuid())->pw_name);
|
||||
data.set("repository", getRepoRoot());
|
||||
data.set("svnRevision", getSVNRevision());
|
||||
data.set("gitRevision", getGitRevision());
|
||||
data.set("tags", CREATE_VECTOR2("hphp", "c++"));
|
||||
data.set(String("startedTime"), time(nullptr));
|
||||
data.set(String("stillRunning"), true);
|
||||
data.set(String("hostname"), hostname);
|
||||
data.set(String("username"), getpwuid(getuid())->pw_name);
|
||||
data.set(String("repository"), getRepoRoot());
|
||||
data.set(String("svnRevision"), getSVNRevision());
|
||||
data.set(String("gitRevision"), getGitRevision());
|
||||
data.set(String("tags"), CREATE_VECTOR2("hphp", "c++"));
|
||||
|
||||
Array dataArr(data.create());
|
||||
|
||||
|
||||
Referência em uma Nova Issue
Bloquear um usuário