]> git.llucax.com Git - z.facultad/75.68/celdas.git/blobdiff - trunk/src/indicemagico.h
Bugfix de set_val() (no verifiqué que ande).
[z.facultad/75.68/celdas.git] / trunk / src / indicemagico.h
index 4c3396e6769dc9ef179b9dd4fae9ae9507744d52..a90412acb2941eb14bf7dddd7074f143fed958c7 100644 (file)
@@ -24,8 +24,8 @@ public:
        CIndiceMagico() 
        { 
                m_cant = 0 ; 
-               m_nombres = (std::string*)calloc(sizeof(std::string), MAX_ELEMENTOS) ;
-               m_datos = (T*)calloc(sizeof(m_datos), MAX_ELEMENTOS) ;
+               m_nombres = new std::string[MAX_ELEMENTOS];
+               m_datos = new T[MAX_ELEMENTOS];
 
 
                if (!m_nombres)
@@ -36,6 +36,12 @@ public:
 
        }
 
+       ~CIndiceMagico()
+       {
+               delete m_nombres;
+               delete m_datos;
+       }
+
 public:
        void add(const char* nombre, const T dato)
        {
@@ -75,11 +81,15 @@ public:
        }
 
 
-       void set_val(const std::string nombre, T valor)
+       void set_val(const std::string& nombre, T valor)
        {
                for (unsigned i=0; i<m_cant; i++)
-                       if (m_datos[i]!=valor)
-                               m_datos[i] ;
+                       if (m_nombres[i] == nombre)
+                       {
+                               m_datos[i] = valor;
+                               return;
+                       }
+               add(nombre.c_str(), valor);
        }