src/protocols/oscar/snac.c

changeset 4617
35d860860593
parent 4333
f4c095774bc2
child 8735
01248ea222d3
--- a/src/protocols/oscar/snac.c	Wed Feb 26 03:39:07 2003 +0000
+++ b/src/protocols/oscar/snac.c	Wed Feb 26 05:01:37 2003 +0000
@@ -90,9 +90,8 @@
 		if (cur->id == id) {
 			*prev = cur->next;
 			if (cur->flags & AIM_SNACFLAGS_DESTRUCTOR) {
-				struct aim_snac_destructor *asd = cur->data;
-				cur->data = asd->data;
-				free(asd);
+				free(cur->data);
+				cur->data = NULL;
 			}
 			return cur;
 		} else
@@ -102,40 +101,6 @@
 	return cur;
 }
 
-/* Free a SNAC, and call the appropriate destructor if necessary.
- */
-faim_internal faim_shortfunc void aim_cleansnac(aim_session_t *sess, aim_snac_t *snac)
-{
-	aim_module_t *cur;
-
-	if (snac->flags & AIM_SNACFLAGS_DESTRUCTOR) {
-		struct aim_snac_destructor *d = snac->data;
-		aim_modsnac_t modsnac;
-
-		modsnac.id = snac->id;
-		modsnac.subtype = snac->type;
-		modsnac.family = snac->family;
-		modsnac.flags = snac->flags;
-
-		for (cur = (aim_module_t *)sess->modlistv; cur; cur = cur->next)
-		{
-			if (!cur->snacdestructor)
-				continue;
-			if (!(cur->flags & AIM_MODFLAG_MULTIFAMILY) &&
-				(cur->family != modsnac.family))
-				continue;
-			if (cur->snacdestructor(sess, d->conn, &modsnac,
-						d->data))
-				break;
-		}
-		free(d->data);
-	}
-
-	free(snac->data);
-	free(snac);
-}
-
-
 /*
  * This is for cleaning up old SNACs that either don't get replies or
  * a reply was never received for.  Garabage collection. Plain and simple.
@@ -161,7 +126,8 @@
 
 				*prev = cur->next;
 
-				aim_cleansnac(sess, cur);
+				free(cur->data);
+				free(cur);
 			} else
 				prev = &cur->next;
 		}

mercurial