]> git.vpit.fr Git - perl/modules/Linux-SysInfo.git/commitdiff
Importing Linux-SysInfo-0.06.tar.gz v0.06
authorVincent Pit <vince@profvince.com>
Sun, 29 Jun 2008 16:41:27 +0000 (18:41 +0200)
committerVincent Pit <vince@profvince.com>
Sun, 29 Jun 2008 16:41:27 +0000 (18:41 +0200)
Changes
META.yml
README
SysInfo.xs
lib/Linux/SysInfo.pm

diff --git a/Changes b/Changes
index 578f6bddd35c483a551dae8b8d6d6f3d4395e0ef..72f2a577c2ea3ff3f2020b3b33078f7dc19769c8 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,5 +1,8 @@
 Revision history for Linux-SysInfo
 
+0.06    2007-08-14 18:40 UTC
+        + Fix : Building for perl-5.6.x and perl-5.9.{3,4}.
+
 0.05    2007-08-13 11:10 UTC
         + Add : Kwalitee test.
        + Chg : Makefile.PL overhaul.
index 36293a4fd9c8ab0a50d92187336fd29258f81a35..d73e14e5e7b4a9f819a3d28243c833368438b253 100644 (file)
--- a/META.yml
+++ b/META.yml
@@ -1,6 +1,6 @@
 --- #YAML:1.0
 name:                Linux-SysInfo
-version:             0.05
+version:             0.06
 abstract:            Perl interface to the sysinfo(2) Linux system call.
 license:             perl
 generated_by:        ExtUtils::MakeMaker version 6.36
diff --git a/README b/README
index 3d0e6265e33f12e7edf7346b7484d243bd54898e..a2a3f55b4482fd1edef1724b2d2e7f1641ac9fa8 100644 (file)
--- a/README
+++ b/README
@@ -2,7 +2,7 @@ NAME
     Linux::SysInfo - Perl interface to the sysinfo(2) Linux system call.
 
 VERSION
-    Version 0.05
+    Version 0.06
 
 SYNOPSIS
         use Linux::SysInfo qw/sysinfo/;
index c2b268d06631a3f4de0c79351a154b5187eb9802..94cdf9719f2afb3ce8a5dbb890cf1ada48737924 100644 (file)
 /* --- Keys ---------------------------------------------------------------- */
 
 #define LS_KEY(K)            (ls_key_##K##_sv)
-#if PERL_API_REVISION >= 5 && PERL_API_VERSION >= 9 && PERL_API_SUBVERSION >= 5
-/* From 5.9.5, newSVpvn_share doesn't seem to fill the UV field of the key SV
- * properly (the SV actually doesn't even look like a UV). That's why we have
- * to keep the hash in another variable. */
+#if PERL_REVISION <= 4 || (PERL_REVISION == 5 && PERL_VERSION <= 6)
+/* newSVpvn_share doesn't exist in perl-5.6.x */
 # define LS_HASH(K)          (ls_key_##K##_hash)
-# define LS_KEY_DECLARE(K)   STATIC SV *LS_KEY(K) = NULL; \
+# define LS_KEY_DECLARE(K)   STATIC const char LS_KEY(K)[] = #K; \
                              STATIC U32 LS_HASH(K) = 0
-# define LS_KEY_DEFINE(K)    PERL_HASH(LS_HASH(K), #K, sizeof(#K)-1); \
-                             LS_KEY(K) = newSVpvn_share(#K, sizeof(#K)-1, \
-                                                       LS_HASH(K));
-# define LS_KEY_STORE(H,K,V) hv_store_ent((H), LS_KEY(K), (V), LS_HASH(K))
+# define LS_KEY_DEFINE(K)    PERL_HASH(LS_HASH(K), LS_KEY(K), sizeof(#K)-1)
+# define LS_KEY_STORE(H,K,V) hv_store((H), LS_KEY(K), sizeof(#K)-1, \
+                                      (V), LS_HASH(K))
 #else
-/* This won't work for 5.9.3 (5.9.4 ?), neither will the previous one.
- * If you want to bleed, upgrade your blead! */
+# if PERL_REVISION >= 5 && PERL_VERSION >= 9 && PERL_SUBVERSION >= 3
+/* From perl-5.9.3 (#24802), the key is only a SVt_PV and one can get the hash
+ * value with the SvSHARED_HASH() macro. */
+#  define LS_HASH(K)         SvSHARED_HASH(LS_KEY(K))
+# else
+/* Before, the key was a SVt_PVIV and the hash was stored in the UV field. */
+#  define LS_HASH(K)         SvUVX(LS_KEY(K))
+# endif
 # define LS_KEY_DECLARE(K)   STATIC SV *LS_KEY(K) = NULL
 # define LS_KEY_DEFINE(K)    LS_KEY(K) = newSVpvn_share(#K, sizeof(#K)-1, 0)
-# define LS_KEY_STORE(H,K,V) hv_store_ent((H), LS_KEY(K), (V), SvUVX(LS_KEY(K)))
+# define LS_KEY_STORE(H,K,V) hv_store_ent((H), LS_KEY(K), (V), LS_HASH(K))
 #endif
 
 LS_KEY_DECLARE(uptime);
index b99e4d40e028b9b9bb88580d7a87f9868ed457ba..e11d26b53483fc94e9b9cc7369bb021d70c3c2a1 100644 (file)
@@ -9,11 +9,11 @@ Linux::SysInfo - Perl interface to the sysinfo(2) Linux system call.
 
 =head1 VERSION
 
-Version 0.05
+Version 0.06
 
 =cut
 
-our $VERSION = '0.05';
+our $VERSION = '0.06';
 
 =head1 SYNOPSIS