summaryrefslogtreecommitdiff
authorhash <hash>2002-08-15 19:46:43 (UTC)
committer hash <hash>2002-08-15 19:46:43 (UTC)
commit3e328409c2829dff590d0087518938851aff8bcc (patch) (side-by-side diff)
tree0a0f9fe70fdd78ffd00702b73782f41ffbc56cd7
parentd9cc9bedf72e921f8f7d8edeb189db127c5651e3 (diff)
downloadopie-3e328409c2829dff590d0087518938851aff8bcc.zip
opie-3e328409c2829dff590d0087518938851aff8bcc.tar.gz
opie-3e328409c2829dff590d0087518938851aff8bcc.tar.bz2
think i fixed a memory leak problem... please test it out and see if the size of qpe increases if you load/unload keymaps
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--inputmethods/multikey/keyboard.cpp10
-rw-r--r--inputmethods/multikey/keyboard.h1
2 files changed, 11 insertions, 0 deletions
diff --git a/inputmethods/multikey/keyboard.cpp b/inputmethods/multikey/keyboard.cpp
index b71f929..671868c 100644
--- a/inputmethods/multikey/keyboard.cpp
+++ b/inputmethods/multikey/keyboard.cpp
@@ -1014,12 +1014,22 @@ void Keys::setKey(const int row, const int qcode, const ushort unicode,
key->pix = pix;
keys[row].append(key);
}
+
+// Keys::~Keys {{{2
+Keys::~Keys() {
+
+ for (int i = 1; i <= 5; i++)
+ for (unsigned int j = 0; j < keys[i].count(); j++)
+ delete keys[i].at(j);
+
+}
+
// Keys:: other functions {{{2
int Keys::width(const int row, const int col) {
return keys[row].at(col)->width;
}
diff --git a/inputmethods/multikey/keyboard.h b/inputmethods/multikey/keyboard.h
index 8ca50ea..400edc0 100644
--- a/inputmethods/multikey/keyboard.h
+++ b/inputmethods/multikey/keyboard.h
@@ -52,12 +52,13 @@ public:
class Keys {
public:
Keys();
Keys(const char * filename);
+ ~Keys();
ushort uni(const int row, const int col);
int qcode(const int row, const int col);
int width(const int row, const int col);
bool pressed(const int row, const int col);
bool *pressedPtr(const int row, const int col);
ushort shift(const ushort);