Bugfix for Configuration system: When using alias parameters, the immutable flag in the real parameter instance should be set.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@81 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/rfb/Configuration.cxx b/rfb/Configuration.cxx
index fc68210..f4b9f95 100644
--- a/rfb/Configuration.cxx
+++ b/rfb/Configuration.cxx
@@ -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 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 @@
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 @@
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 @@
#ifdef WIN32
Lock l(configLock);
#endif
- if (immutable) return;
+ if (immutable) return;
vlog.debug("set %s(Binary)", getName());
delete [] value; value = 0;
if (len) {