]> git.cworth.org Git - apitrace/commitdiff
Unify Struct::Signature into StructSig
authorJosé Fonseca <jose.r.fonseca@gmail.com>
Sat, 28 May 2011 12:01:16 +0000 (13:01 +0100)
committerJosé Fonseca <jose.r.fonseca@gmail.com>
Sat, 28 May 2011 12:01:16 +0000 (13:01 +0100)
gui/apitracecall.cpp
gui/saverthread.cpp
trace_model.hpp
trace_parser.cpp
trace_parser.hpp
trace_writer.cpp
trace_writer.hpp

index 6112877bdf53307ff314a250cf97245915ab4c87..8161ba9a2db6d142c7e0bcfde4b91c64e41f169e 100644 (file)
@@ -230,7 +230,7 @@ void ApiStruct::init(const Trace::Struct *s)
         return;
 
     m_sig.name = QString::fromStdString(s->sig->name);
-    for (unsigned i = 0; i < s->members.size(); ++i) {
+    for (unsigned i = 0; i < s->sig->num_members; ++i) {
         VariantVisitor vis;
         m_sig.memberNames.append(
             QString::fromStdString(s->sig->member_names[i]));
index 648de593701c885076d570dd938f906951465d2c..1645279bd35adf51b5296bcded3784dfd09f37d9 100644 (file)
@@ -47,10 +47,10 @@ createStructSig(const ApiStruct &str, unsigned id)
     sig->id = id;
     sig->name = qstrdup(aSig.name.toLocal8Bit());
     sig->num_members = aSig.memberNames.count();
-    char **members = new char*[aSig.memberNames.count()];
-    sig->members = (const char **)members;
+    char **member_names = new char*[aSig.memberNames.count()];
+    sig->member_names = (const char **)member_names;
     for (int i = 0; i < aSig.memberNames.count(); ++i) {
-        members[i] = qstrdup(aSig.memberNames[i].toLocal8Bit());
+        member_names[i] = qstrdup(aSig.memberNames[i].toLocal8Bit());
     }
     return sig;
 }
@@ -59,9 +59,9 @@ static void
 deleteStructSig(Trace::StructSig *sig)
 {
     for (int i = 0; i < sig->num_members; ++i) {
-        delete [] sig->members[i];
+        delete [] sig->member_names[i];
     }
-    delete [] sig->members;
+    delete [] sig->member_names;
     delete [] sig->name;
     delete sig;
 }
index eb28465625cc18a5d0d1262a202084e2adca6ca4..05d809ee69eabdd846544a92074517f5cde7d4f8 100644 (file)
@@ -189,18 +189,13 @@ public:
 class Struct : public Value
 {
 public:
-    struct Signature {
-        const char *name;
-        std::vector<const char *> member_names;
-    };
-
-    Struct(Signature *_sig) : sig(_sig), members(_sig->member_names.size()) { }
+    Struct(StructSig *_sig) : sig(_sig), members(_sig->num_members) { }
     ~Struct();
 
     bool toBool(void) const;
     void visit(Visitor &visitor);
 
-    const Signature *sig;
+    const StructSig *sig;
     std::vector<Value *> members;
 };
 
index 1af9ad04f5b74166a505f8b62dec890ba33d2c85..a9f9e78f5647f60ec2f726b3fd5ef4f4fe33691a 100644 (file)
@@ -374,21 +374,24 @@ Value *Parser::parse_blob(void) {
 Value *Parser::parse_struct() {
     size_t id = read_uint();
 
-    Struct::Signature *sig = lookup(structs, id);
+    StructSig *sig = lookup(structs, id);
     if (!sig) {
-        sig = new Struct::Signature;
+        sig = new StructSig;
+        sig->id = id;
         sig->name = read_string();
-        unsigned size = read_uint();
-        for (unsigned i = 0; i < size; ++i) {
-            sig->member_names.push_back(read_string());
+        sig->num_members = read_uint();
+        const char **member_names = new const char *[sig->num_members];
+        for (unsigned i = 0; i < sig->num_members; ++i) {
+            member_names[i] = read_string();
         }
+        sig->member_names = member_names;
         structs[id] = sig;
     }
     assert(sig);
 
     Struct *value = new Struct(sig);
 
-    for (size_t i = 0; i < sig->member_names.size(); ++i) {
+    for (size_t i = 0; i < sig->num_members; ++i) {
         value->members[i] = parse_value();
     }
 
index fe360230f6f498906f1b90a021446908380ca590..20c3a756e2c62c91463220e2506fa5dd800274c4 100644 (file)
@@ -48,7 +48,7 @@ protected:
     typedef std::vector<Call::Signature *> FunctionMap;
     FunctionMap functions;
 
-    typedef std::vector<Struct::Signature *> StructMap;
+    typedef std::vector<StructSig *> StructMap;
     StructMap structs;
 
     typedef std::vector<EnumSig *> EnumMap;
index 0a843d2ae34996bce43c415dbbbba3f12695e0b3..24d92fd816a67ea393f719ef2e615fcbc1402832 100644 (file)
@@ -241,7 +241,7 @@ void Writer::beginStruct(const StructSig *sig) {
         _writeString(sig->name);
         _writeUInt(sig->num_members);
         for (unsigned i = 0; i < sig->num_members; ++i) {
-            _writeString(sig->members[i]);
+            _writeString(sig->member_names[i]);
         }
         structs[sig->id] = true;
     }
index 5e7416b0696959ca87f6285fe781277228be7ba2..af7f468726e9fb941d1dc08ff7e236ab1a22f285 100644 (file)
@@ -49,7 +49,7 @@ namespace Trace {
         Id id;
         const char *name;
         unsigned num_members;
-        const char **members;
+        const char **member_names;
     };
 
     struct EnumSig {