aboutsummaryrefslogtreecommitdiff
path: root/tool_src/QvLib/QvPList.h
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@gmail.com>2026-08-24 11:16:07 +0200
committerFelix Morgner <felix.morgner@gmail.com>2026-08-24 11:16:07 +0200
commitc068f22329d5cc722622a2183bbb22eef2093df7 (patch)
tree12d56c1aede67988a55e241364606bfbb4dba933 /tool_src/QvLib/QvPList.h
downloadopenparsec-c068f22329d5cc722622a2183bbb22eef2093df7.tar.xz
openparsec-c068f22329d5cc722622a2183bbb22eef2093df7.zip
initial importHEADmain
Diffstat (limited to 'tool_src/QvLib/QvPList.h')
-rw-r--r--tool_src/QvLib/QvPList.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/tool_src/QvLib/QvPList.h b/tool_src/QvLib/QvPList.h
new file mode 100644
index 0000000..50f3eff
--- /dev/null
+++ b/tool_src/QvLib/QvPList.h
@@ -0,0 +1,29 @@
+#ifndef _QV_PLIST_
+#define _QV_PLIST_
+
+#include <QvBasic.h>
+
+class QvPList {
+ public:
+ QvPList();
+ ~QvPList();
+ void append(void * ptr)
+ { if (nPtrs + 1 > ptrsSize) expand(nPtrs + 1);
+ ptrs[nPtrs++] = ptr; }
+ int find(const void *ptr) const;
+ void remove(int which);
+ int getLength() const { return (int) nPtrs; }
+ void truncate(int start)
+ { nPtrs = start; }
+ void *& operator [](int i) const { return ptrs[i]; }
+
+ private:
+ void ** ptrs;
+ int nPtrs;
+ int ptrsSize;
+ void setSize(int size)
+ { if (size > ptrsSize) expand(size); nPtrs = size; }
+ void expand(int size);
+};
+
+#endif /* _QV_PLIST_ */