mirror of
https://github.com/love2d/love.git
synced 2026-08-15 15:51:12 +02:00
Add an easier std::string Variant constructor.
This commit is contained in:
@@ -58,21 +58,26 @@ Variant::Variant(double number)
|
||||
data.number = number;
|
||||
}
|
||||
|
||||
Variant::Variant(const char *string, size_t len)
|
||||
Variant::Variant(const char *str, size_t len)
|
||||
{
|
||||
if (len <= MAX_SMALL_STRING_LENGTH)
|
||||
{
|
||||
type = SMALLSTRING;
|
||||
memcpy(data.smallstring.str, string, len);
|
||||
memcpy(data.smallstring.str, str, len);
|
||||
data.smallstring.len = (uint8) len;
|
||||
}
|
||||
else
|
||||
{
|
||||
type = STRING;
|
||||
data.string = new SharedString(string, len);
|
||||
data.string = new SharedString(str, len);
|
||||
}
|
||||
}
|
||||
|
||||
Variant::Variant(const std::string &str)
|
||||
: Variant(str.c_str(), str.length())
|
||||
{
|
||||
}
|
||||
|
||||
Variant::Variant(void *lightuserdata)
|
||||
: type(LUSERDATA)
|
||||
{
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
#include "common/int.h"
|
||||
|
||||
#include <cstring>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <set>
|
||||
|
||||
@@ -59,6 +60,7 @@ public:
|
||||
: len(len)
|
||||
{
|
||||
str = new char[len+1];
|
||||
str[len] = '\0';
|
||||
memcpy(str, string, len);
|
||||
}
|
||||
virtual ~SharedString() { delete[] str; }
|
||||
@@ -99,7 +101,8 @@ public:
|
||||
Variant();
|
||||
Variant(bool boolean);
|
||||
Variant(double number);
|
||||
Variant(const char *string, size_t len);
|
||||
Variant(const char *str, size_t len);
|
||||
Variant(const std::string &str);
|
||||
Variant(void *lightuserdata);
|
||||
Variant(love::Type *type, love::Object *object);
|
||||
Variant(std::vector<std::pair<Variant, Variant>> *table);
|
||||
|
||||
Reference in New Issue
Block a user