base/asm-common.h (x86), and knock-on: Add macros for full-size regs.
[catacomb] / key / key-data.c
index 8b01d72..cd5c8d7 100644 (file)
@@ -153,6 +153,7 @@ void key_split(key_data **kk)
     default:
       abort();
   }
+  key_drop(k);
 }
 
 /*----- Setting new values ------------------------------------------------*/
@@ -427,8 +428,8 @@ static int structmatchp(key_data *k, const key_filter *kf)
 {
   key_subkeyiter i;
 
-  if (!KEY_MATCH(k, kf)) return (0);
-  else if ((k->e & KF_ENCMASK) == KENC_STRUCT) return (1);
+  if ((k->e & KF_ENCMASK) != KENC_STRUCT)
+    return (KEY_MATCH(k, kf));
   else {
     for (key_mksubkeyiter(&i, k); key_nextsubkey(&i, 0, &k); )
       if (!structmatchp(k, kf)) return (0);