File tree 2 files changed +9
-37
lines changed
2 files changed +9
-37
lines changed Original file line number Diff line number Diff line change @@ -65,7 +65,7 @@ bool PycDict::isEqual(PycRef<PycObject> obj) const
65
65
return false ;
66
66
67
67
PycRef<PycDict> dictObj = obj.cast <PycDict>();
68
- if (m_size != dictObj->m_size )
68
+ if (m_keys. size () != dictObj->m_keys . size () )
69
69
return false ;
70
70
71
71
auto ki1 = m_keys.cbegin ();
@@ -85,28 +85,3 @@ bool PycDict::isEqual(PycRef<PycObject> obj) const
85
85
}
86
86
return true ;
87
87
}
88
-
89
- PycRef<PycObject> PycDict::get (PycRef<PycObject> key) const
90
- {
91
- auto ki = m_keys.cbegin ();
92
- auto vi = m_values.cbegin ();
93
- while (ki != m_keys.cend ()) {
94
- if ((*ki)->isEqual (key))
95
- return *vi;
96
- ++ki, ++vi;
97
- }
98
- return NULL ; // Disassembly shouldn't get non-existent keys
99
- }
100
-
101
- PycRef<PycObject> PycDict::get (int idx) const
102
- {
103
- if (idx < 0 )
104
- throw std::out_of_range (" Dict index out of range" );
105
-
106
- auto it = m_values.cbegin ();
107
- while (idx-- && it != m_values.cend ())
108
- ++it;
109
- if (it == m_values.cend ())
110
- throw std::out_of_range (" Dict index out of range" );
111
- return *it;
112
- }
Original file line number Diff line number Diff line change @@ -46,32 +46,29 @@ class PycList : public PycSimpleSequence {
46
46
PycList (int type = TYPE_LIST) : PycSimpleSequence(type) { }
47
47
};
48
48
49
- class PycDict : public PycSequence {
49
+ class PycSet : public PycSimpleSequence {
50
+ public:
51
+ typedef PycSimpleSequence::value_t value_t ;
52
+ PycSet (int type = TYPE_SET) : PycSimpleSequence(type) { }
53
+ };
54
+
55
+ class PycDict : public PycObject {
50
56
public:
51
57
typedef std::vector<PycRef<PycObject>> key_t ;
52
58
typedef std::vector<PycRef<PycObject>> value_t ;
53
59
54
- PycDict (int type = TYPE_DICT) : PycSequence (type) { }
60
+ PycDict (int type = TYPE_DICT) : PycObject (type) { }
55
61
56
62
bool isEqual (PycRef<PycObject> obj) const override ;
57
63
58
64
void load (class PycData * stream, class PycModule * mod) override ;
59
65
60
- PycRef<PycObject> get (PycRef<PycObject> key) const ;
61
66
const key_t & keys () const { return m_keys; }
62
67
const value_t & values () const { return m_values; }
63
68
64
- PycRef<PycObject> get (int idx) const override ;
65
-
66
69
private:
67
70
key_t m_keys;
68
71
value_t m_values;
69
72
};
70
73
71
- class PycSet : public PycSimpleSequence {
72
- public:
73
- typedef PycSimpleSequence::value_t value_t ;
74
- PycSet (int type = TYPE_SET) : PycSimpleSequence(type) { }
75
- };
76
-
77
74
#endif
You can’t perform that action at this time.
0 commit comments