change_sv_object(): alten SV aus Ebene auslesen.

Es gibt eigentlich keinen Grund, den SV uebergeben zu
muessen, weil der eh in der Ebenen-Struct enthalten
ist. Daher die Argument geaendert.

Change-Id: I26f30d06c6a4f9d8807f99a7c097dd6ae08f40a2
diff --git a/p/daemon/channeld.c b/p/daemon/channeld.c
index 50602ea..72fd23f 100644
--- a/p/daemon/channeld.c
+++ b/p/daemon/channeld.c
@@ -655,7 +655,7 @@
 
 // Aendert das Supervisor-Objekt einer Ebene, ggf. mit Meldung.
 // Wenn kein neuer SV angegeben, wird der aelteste Zuhoerer gewaehlt.
-private int change_sv_object(struct channel_s ch, object old_sv, object new_sv)
+private int change_sv_object(struct channel_s ch, object new_sv)
 {
   if (!new_sv)
   {
@@ -665,6 +665,8 @@
     else
       return 0; // kein neuer SV moeglich.
   }
+  object old_sv = ch.supervisor;
+
   ch.supervisor = new_sv;
   //TODO angleichen an new() !
   ch.access_cl = symbol_function("check_ch_access", new_sv);
@@ -683,7 +685,7 @@
         sprintf("uebergibt die Ebene an %s.",new_sv->name(WEN)),
         MSG_EMOTE);
   }
-  else if (old_svn && !old_sv->QueryProp(P_INVIS))
+  else if (old_sv && !old_sv->QueryProp(P_INVIS))
   {
     this_object()->send(ch.name, old_sv,
         "uebergibt die Ebene an jemand anderen.", MSG_EMOTE);
@@ -748,7 +750,7 @@
     {
       // In diesem Fall muss ein neues SV-Objekt gesucht und ggf. eingetragen
       // werden. change_sv_object nimmt das aelteste Mitglied der Ebene.
-      if (!change_sv_object(ch, pl, 0))
+      if (!change_sv_object(ch, 0))
       {
         // wenn das nicht klappt, Ebene aufloesen
         log_file("CHANNEL",
@@ -962,7 +964,7 @@
     if (pl == ch.supervisor
         || object_name(pl) == ch.supervisor)
     {
-      change_sv_object(ch, pl, 0);
+      change_sv_object(ch, 0);
     }
   }
   // ansonsten Ebene loeschen, wenn keiner zuhoert.