From e129c38131d7ef9988e3ab8124f47d14db1c32f6 Mon Sep 17 00:00:00 2001
From: Per Hedbor <ph@opera.com>
Date: Mon, 26 May 2014 17:14:49 +0200
Subject: [PATCH] Changed return type of get_{inherit_,}storae to void*

This makes it possible to remove quite a lot of casts.
---
 src/program.c | 10 +++-------
 src/program.h |  4 ++--
 2 files changed, 5 insertions(+), 9 deletions(-)

diff --git a/src/program.c b/src/program.c
index a415947f6f..5f2f7194ee 100644
--- a/src/program.c
+++ b/src/program.c
@@ -11460,7 +11460,7 @@ void pop_compiler_frame(void)
 }
 
 
-PMOD_EXPORT char *get_inherit_storage(struct object *o, int inherit)
+PMOD_EXPORT void *get_inherit_storage(struct object *o, int inherit)
 {
   if (!o || !o->prog) return NULL;
 #ifdef PIKE_DEBUG
@@ -11488,11 +11488,7 @@ PMOD_EXPORT ptrdiff_t low_get_storage(struct program *o, struct program *p)
   oid=o->id;
   pid=p->id;
   hval=(unsigned)oid*9248339 + (unsigned)pid;
-  hval%=GET_STORAGE_CACHE_SIZE;
-#ifdef PIKE_DEBUG
-  if(hval>GET_STORAGE_CACHE_SIZE)
-    Pike_fatal("hval>GET_STORAGE_CACHE_SIZE\n");
-#endif
+  hval&=GET_STORAGE_CACHE_SIZE-1;
   if(get_storage_cache[hval].oid == oid &&
      get_storage_cache[hval].pid == pid)
   {
@@ -11517,7 +11513,7 @@ PMOD_EXPORT ptrdiff_t low_get_storage(struct program *o, struct program *p)
   return offset;
 }
 
-PMOD_EXPORT char *get_storage(struct object *o, struct program *p)
+PMOD_EXPORT void *get_storage(struct object *o, struct program *p)
 {
   ptrdiff_t offset;
 
diff --git a/src/program.h b/src/program.h
index ad084efa94..b58173e934 100644
--- a/src/program.h
+++ b/src/program.h
@@ -1039,9 +1039,9 @@ void push_compiler_frame(int lexical_scope);
 void low_pop_local_variables(int level);
 void pop_local_variables(int level);
 void pop_compiler_frame(void);
-PMOD_EXPORT char *get_inherit_storage(struct object *o, int inherit);
+PMOD_EXPORT void *get_inherit_storage(struct object *o, int inherit);
 PMOD_EXPORT ptrdiff_t low_get_storage(struct program *o, struct program *p);
-PMOD_EXPORT char *get_storage(struct object *o, struct program *p);
+PMOD_EXPORT void *get_storage(struct object *o, struct program *p);
 PMOD_EXPORT struct program *low_program_from_function(struct object *o, INT32 i);
 PMOD_EXPORT struct program *program_from_function(const struct svalue *f);
 PMOD_EXPORT struct program *program_from_type(const struct pike_type *t);
-- 
GitLab