]> source.dussan.org Git - tigervnc.git/commitdiff
Bugfix for Configuration system: When using alias parameters, the immutable flag...
authorPeter Åstrand <astrand@cendio.se>
Mon, 3 Jan 2005 14:47:42 +0000 (14:47 +0000)
committerPeter Åstrand <astrand@cendio.se>
Mon, 3 Jan 2005 14:47:42 +0000 (14:47 +0000)
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@81 3789f03b-4d11-0410-bbf8-ca57d06f2519

rfb/Configuration.cxx
rfb/Configuration.h

index fc682103935384925dc64799f9a7f66ef9385825..f4b9f957fb95a4943bb082728ce0ccf4bd3d5df9 100644 (file)
@@ -1,4 +1,5 @@
 /* Copyright (C) 2002-2004 RealVNC Ltd.  All Rights Reserved.
+ * Copyright (C) 2004 Peter Astrand, Cendio AB.  All Rights Reserved.
  *    
  * This is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -68,8 +69,8 @@ bool Configuration::setParam(const char* name, int len,
     {
       bool b = current->setParam(val);
       current->setHasBeenSet(); 
-      if (b && immutable)
-        current->setImmutable();
+      if (b && immutable) 
+       current->setImmutable();
       return b;
     }
     current = current->_next;
@@ -93,8 +94,8 @@ bool Configuration::setParam(const char* config, bool immutable) {
       if (strcasecmp(current->getName(), config) == 0) {
         bool b = current->setParam();
        current->setHasBeenSet(); 
-        if (b && immutable)
-          current->setImmutable();
+        if (b && immutable) 
+         current->setImmutable();
         return b;
       }
       current = current->_next;
@@ -225,6 +226,13 @@ bool AliasParameter::isBool() const {
   return param->isBool();
 }
 
+void
+AliasParameter::setImmutable() {
+  vlog.debug("set immutable %s (Alias)", getName());
+  param->setImmutable();
+}
+
+
 // -=- BoolParameter
 
 BoolParameter::BoolParameter(const char* name_, const char* desc_, bool v)
@@ -389,7 +397,7 @@ void BinaryParameter::setParam(const void* v, int len) {
 #ifdef WIN32
   Lock l(configLock);
 #endif
-  if (immutable) return;
+  if (immutable) return; 
   vlog.debug("set %s(Binary)", getName());
   delete [] value; value = 0;
   if (len) {
index 20aec992b8beaada39e48a25362fcedffad3926d..d50c1cb1842d02018cff40cc8b08bd10501f0d78 100644 (file)
@@ -97,6 +97,7 @@ namespace rfb {
     virtual char* getDefaultStr() const;
     virtual char* getValueStr() const;
     virtual bool isBool() const;
+    virtual void setImmutable();
   private:
     VoidParameter* param;
   };