Bei Gewichtsaenderung Content-Cache invalidieren

In normalen Gegenstaenden (thing) wurde bislang
vergessen, bei einer Aenderung von P_WEIGHT den
Content-Cache zu invalidieren. Dies wird hier
jetzt ergaenzt.

Change-Id: I4d976e810496cf8dd53b4338ce55e9b198ff25c6
diff --git a/std/thing/restrictions.c b/std/thing/restrictions.c
index 83b541d..af8704a 100644
--- a/std/thing/restrictions.c
+++ b/std/thing/restrictions.c
@@ -23,12 +23,25 @@
 
 protected void create_super() {
   set_next_reset(-1);
-}     
+}
 
-// P_TOTAL_WEIGHT bei Nicht-Containern auf P_WEIGHT umleiten
-static int _set_weight(int weight) {
-  return SetProp(P_TOTAL_WEIGHT,
-	  Set(P_WEIGHT, weight, F_VALUE) );
+static int _set_weight(int weight)
+{
+  // Content-Cache invalidieren.
+  object env = this_object();
+  while ( objectp(env = environment(env)) )
+      // Ja. Man ruft die _set_xxx()-Funktionen eigentlich nicht direkt auf.
+      // Aber das Gewichtssystem ist schon *so* rechenintensiv und gerade der
+      // P_LAST_CONTENT_CHANGE-Cache wird *so* oft benoetigt, dass es mir
+      // da um jedes bisschen Rechenzeit geht.
+      // Der Zweck heiligt ja bekanntlich die Mittel. ;-)
+      //
+      // Tiamak
+      env->_set_last_content_change();
+
+  // P_TOTAL_WEIGHT bei Nicht-Containern auf P_WEIGHT umleiten
+  SetProp(P_TOTAL_WEIGHT, weight);
+  return Set(P_WEIGHT, weight, F_VALUE);
 }
 
 // P_X_ATTR_MOD aendern (Attributaenderungen durch Ausruestung)