|
@@ -36,6 +36,8 @@ class Variant
|
|
|
{
|
|
|
public:
|
|
|
|
|
|
+ static const int MAX_SMALL_STRING_LENGTH = 15;
|
|
|
+
|
|
|
enum Type
|
|
|
{
|
|
|
UNKNOWN = 0,
|
|
@@ -49,32 +51,12 @@ public:
|
|
|
TABLE
|
|
|
};
|
|
|
|
|
|
- Variant();
|
|
|
- Variant(bool boolean);
|
|
|
- Variant(double number);
|
|
|
- Variant(const char *string, size_t len);
|
|
|
- Variant(void *lightuserdata);
|
|
|
- Variant(love::Type *type, love::Object *object);
|
|
|
- Variant(std::vector<std::pair<Variant, Variant>> *table);
|
|
|
- Variant(const Variant &v);
|
|
|
- Variant(Variant &&v);
|
|
|
- ~Variant();
|
|
|
-
|
|
|
- Variant &operator = (const Variant &v);
|
|
|
-
|
|
|
- Type getType() const { return type; }
|
|
|
-
|
|
|
- static Variant fromLua(lua_State *L, int n, std::set<const void*> *tableSet = nullptr);
|
|
|
- void toLua(lua_State *L) const;
|
|
|
-
|
|
|
-private:
|
|
|
-
|
|
|
class SharedString : public love::Object
|
|
|
{
|
|
|
public:
|
|
|
|
|
|
SharedString(const char *string, size_t len)
|
|
|
- : len(len)
|
|
|
+ : len(len)
|
|
|
{
|
|
|
str = new char[len+1];
|
|
|
memcpy(str, string, len);
|
|
@@ -90,7 +72,7 @@ private:
|
|
|
public:
|
|
|
|
|
|
SharedTable(std::vector<std::pair<Variant, Variant>> *table)
|
|
|
- : table(table)
|
|
|
+ : table(table)
|
|
|
{
|
|
|
}
|
|
|
|
|
@@ -99,10 +81,6 @@ private:
|
|
|
std::vector<std::pair<Variant, Variant>> *table;
|
|
|
};
|
|
|
|
|
|
- static const int MAX_SMALL_STRING_LENGTH = 15;
|
|
|
-
|
|
|
- Type type;
|
|
|
-
|
|
|
union Data
|
|
|
{
|
|
|
bool boolean;
|
|
@@ -116,7 +94,31 @@ private:
|
|
|
char str[MAX_SMALL_STRING_LENGTH];
|
|
|
uint8 len;
|
|
|
} smallstring;
|
|
|
- } data;
|
|
|
+ };
|
|
|
+
|
|
|
+ Variant();
|
|
|
+ Variant(bool boolean);
|
|
|
+ Variant(double number);
|
|
|
+ Variant(const char *string, size_t len);
|
|
|
+ Variant(void *lightuserdata);
|
|
|
+ Variant(love::Type *type, love::Object *object);
|
|
|
+ Variant(std::vector<std::pair<Variant, Variant>> *table);
|
|
|
+ Variant(const Variant &v);
|
|
|
+ Variant(Variant &&v);
|
|
|
+ ~Variant();
|
|
|
+
|
|
|
+ Variant &operator = (const Variant &v);
|
|
|
+
|
|
|
+ Type getType() const { return type; }
|
|
|
+ const Data &getData() const { return data; }
|
|
|
+
|
|
|
+ static Variant fromLua(lua_State *L, int n, std::set<const void*> *tableSet = nullptr);
|
|
|
+ void toLua(lua_State *L) const;
|
|
|
+
|
|
|
+private:
|
|
|
+
|
|
|
+ Type type;
|
|
|
+ Data data;
|
|
|
|
|
|
}; // Variant
|
|
|
} // love
|