RRDs.xs uses &PL_sv_undef to insert undefined values into arrays and hashes. This...
[rrdtool.git] / bindings / perl-shared / RRDs.xs
index 3cf1d24..830a779 100644 (file)
@@ -24,18 +24,14 @@ extern "C" {
  */
 #define VERSION_SAVED VERSION
 #undef VERSION
+#ifndef WIN32
 #include "../../rrd_config.h"
+#endif
 #include "../../src/rrd_tool.h"
 #undef VERSION
 #define VERSION VERSION_SAVED
 #undef VERSION_SAVED
 
-/* perl 5.004 compatibility */
-#if PERLPATCHLEVEL < 5 
-#define PL_sv_undef sv_undef
-#endif
-
-
 #define rrdcode(name) \
                argv = (char **) malloc((items+1)*sizeof(char *));\
                argv[0] = "dummy";\
@@ -85,7 +81,7 @@ extern "C" {
                    switch (data->type) { \
                    case RD_I_VAL: \
                        if (isnan(data->value.u_val)) \
-                           hvs(&PL_sv_undef); \
+                           hvs(newSV(0)); \
                        else \
                            hvs(newSVnv(data->value.u_val)); \
                        break; \
@@ -126,7 +122,6 @@ BOOT:
 #ifdef MUST_DISABLE_FPMASK
        fpsetmask(0);
 #endif 
-       
 
 SV*
 rrd_error()
@@ -136,7 +131,6 @@ rrd_error()
        OUTPUT:
                RETVAL
 
-       
 int
 rrd_last(...)
       PROTOTYPE: @
@@ -159,7 +153,6 @@ rrd_first(...)
       OUTPUT:
             RETVAL
 
-
 int
 rrd_create(...)
        PROTOTYPE: @    
@@ -172,7 +165,6 @@ rrd_create(...)
         OUTPUT:
                RETVAL
 
-
 int
 rrd_update(...)
        PROTOTYPE: @    
@@ -185,7 +177,6 @@ rrd_update(...)
        OUTPUT:
                RETVAL
 
-
 int
 rrd_tune(...)
        PROTOTYPE: @    
@@ -198,7 +189,6 @@ rrd_tune(...)
        OUTPUT:
                RETVAL
 
-
 SV *
 rrd_graph(...)
        PROTOTYPE: @    
@@ -286,7 +276,7 @@ rrd_fetch(...)
                for (i = start+step; i <= end; i += step){
                        line = newAV();
                        for (ii = 0; ii < ds_cnt; ii++){
-                         av_push(line,(isnan(*datai) ? &PL_sv_undef : newSVnv(*datai)));
+                         av_push(line,(isnan(*datai) ? newSV(0) : newSVnv(*datai)));
                          datai++;
                        }
                        av_push(retar,newRV_noinc((SV*)line));
@@ -366,7 +356,7 @@ rrd_xport(...)
                for (i = start+step; i <= end; i += step){
                        line = newAV();
                        for (ii = 0; ii < col_cnt; ii++){
-                         av_push(line,(isnan(*ptr) ? &PL_sv_undef : newSVnv(*ptr)));
+                         av_push(line,(isnan(*ptr) ? newSV(0) : newSVnv(*ptr)));
                          ptr++;
                        }
                        av_push(retar,newRV_noinc((SV*)line));
@@ -444,13 +434,16 @@ rrd_restore(...)
        OUTPUT:
                RETVAL
 
+#ifndef WIN32
 int
-rrd_flush(...)
+rrd_flushcached(...)
        PROTOTYPE: @
        PREINIT:
        int i;
        char **argv;
        CODE:
-               rrdcode(rrd_cmd_flush);
+               rrdcode(rrd_flushcached);
        OUTPUT:
                RETVAL
+
+#endif