}
}
+void pmap_remove_bi(void* mapp, void* left, void* right)
+{
+ pmap_remove(mapp, left, right);
+ pmap_remove(mapp, right, left);
+}
+
void pmap_remove_either(void* mapp, void* either)
{
struct pmap* map = mapp;
}
}
+bool pmap_contains_bi(void* mapp, void* left, void* right)
+{
+ struct pmap* map = mapp;
+ int i;
+
+ for (i=0; i<map->count; i++)
+ {
+ struct pmap_node* node = &map->item[i];
+ if (((node->left == left) && (node->right == right))
+ || ((node->left == right) && (node->right == left)))
+ return true;
+ }
+
+ return NULL;
+}
+
void* pmap_findleft(void* mapp, void* left)
{
struct pmap* map = mapp;
extern void pmap_add(void* map, void* left, void* right);
extern void pmap_add_bi(void* map, void* left, void* right);
extern void pmap_remove(void* map, void* left, void* right);
+extern void pmap_remove_bi(void* map, void* left, void* right);
extern void pmap_remove_either(void* map, void* either);
+extern bool pmap_contains_bi(void* map, void* left, void* right);
extern void* pmap_findleft(void* map, void* left);
extern void* pmap_findright(void* map, void* right);