]> git.saurik.com Git - redis.git/blobdiff - src/object.c
A reimplementation of blocking operation internals.
[redis.git] / src / object.c
index 9699ea53e314fcb90483f55bc1bb0608a971c367..ba7ea323a6f2cbddd1f3cfafbc1cd93722fc6019 100644 (file)
@@ -9,18 +9,8 @@ robj *createObject(int type, void *ptr) {
     o->ptr = ptr;
     o->refcount = 1;
 
     o->ptr = ptr;
     o->refcount = 1;
 
-    /* Set the LRU to the current lruclock (minutes resolution).
-     * We do this regardless of the fact VM is active as LRU is also
-     * used for the maxmemory directive when Redis is used as cache.
-     *
-     * Note that this code may run in the context of an I/O thread
-     * and accessing server.lruclock in theory is an error
-     * (no locks). But in practice this is safe, and even if we read
-     * garbage Redis will not fail. */
+    /* Set the LRU to the current lruclock (minutes resolution). */
     o->lru = server.lruclock;
     o->lru = server.lruclock;
-    /* The following is only needed if VM is active, but since the conditional
-     * is probably more costly than initializing the field it's better to
-     * have every field properly initialized anyway. */
     return o;
 }
 
     return o;
 }
 
@@ -48,7 +38,7 @@ robj *createStringObjectFromLongLong(long long value) {
 /* Note: this function is defined into object.c since here it is where it
  * belongs but it is actually designed to be used just for INCRBYFLOAT */
 robj *createStringObjectFromLongDouble(long double value) {
 /* Note: this function is defined into object.c since here it is where it
  * belongs but it is actually designed to be used just for INCRBYFLOAT */
 robj *createStringObjectFromLongDouble(long double value) {
-    char buf[256], *p;
+    char buf[256];
     int len;
 
     /* We use 17 digits precision since with 128 bit floats that precision
     int len;
 
     /* We use 17 digits precision since with 128 bit floats that precision
@@ -58,8 +48,8 @@ robj *createStringObjectFromLongDouble(long double value) {
      * a string are exactly the same as what the user typed.) */
     len = snprintf(buf,sizeof(buf),"%.17Lf", value);
     /* Now remove trailing zeroes after the '.' */
      * a string are exactly the same as what the user typed.) */
     len = snprintf(buf,sizeof(buf),"%.17Lf", value);
     /* Now remove trailing zeroes after the '.' */
-    if ((p = strchr(buf,'.')) != NULL) {
-        p = buf+len-1;
+    if (strchr(buf,'.') != NULL) {
+        char *p = buf+len-1;
         while(*p == '0') {
             p--;
             len--;
         while(*p == '0') {
             p--;
             len--;
@@ -270,9 +260,7 @@ robj *tryObjectEncoding(robj *o) {
 
     /* Ok, this object can be encoded...
      *
 
     /* Ok, this object can be encoded...
      *
-     * Can I use a shared object? Only if the object is inside a given
-     * range and if the back end in use is in-memory. For disk store every
-     * object in memory used as value should be independent.
+     * Can I use a shared object? Only if the object is inside a given range
      *
      * Note that we also avoid using shared integers when maxmemory is used
      * because every object needs to have a private LRU field for the LRU
      *
      * Note that we also avoid using shared integers when maxmemory is used
      * because every object needs to have a private LRU field for the LRU