[PD-cvs] pd/src m_pd.h, 1.4.4.11.2.19, 1.4.4.11.2.20 m_hash.c, 1.1.2.1, 1.1.2.2
Mathieu Bouchard
matju at users.sourceforge.net
Sat Apr 22 01:06:15 CEST 2006
- Previous message: [PD-cvs] pd/src m_pd.h,1.4.4.11.2.18,1.4.4.11.2.19
- Next message: [PD-cvs] pd/src m_pd.h, 1.4.4.11.2.20, 1.4.4.11.2.21 m_class.c, 1.3.4.7.2.15, 1.3.4.7.2.16 m_glob.c, 1.4.4.2.2.6, 1.4.4.2.2.7 m_hash.c, 1.1.2.2, 1.1.2.3 desire.tk, 1.1.2.173, 1.1.2.174
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /cvsroot/pure-data/pd/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28718
Modified Files:
Tag: devel_0_39
m_pd.h m_hash.c
Log Message:
more hashtable stuff
Index: m_pd.h
===================================================================
RCS file: /cvsroot/pure-data/pd/src/m_pd.h,v
retrieving revision 1.4.4.11.2.19
retrieving revision 1.4.4.11.2.20
diff -C2 -d -r1.4.4.11.2.19 -r1.4.4.11.2.20
*** m_pd.h 21 Apr 2006 22:57:56 -0000 1.4.4.11.2.19
--- m_pd.h 21 Apr 2006 23:06:13 -0000 1.4.4.11.2.20
***************
*** 165,169 ****
--- 165,172 ----
typedef void *hashkey;
typedef void *hashvalue;
+ typedef void (*hash_iter)(void *data, hashkey k, hashvalue v);
t_hash * hash_new(long capa);
+ long hash_size(t_hash *self);
+ void hash_each(t_hash *self, hash_iter f, void *data);
hashvalue hash_get(t_hash *self, hashkey k);
void hash_set(t_hash *self, hashkey k, hashvalue v);
Index: m_hash.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/m_hash.c,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -C2 -d -r1.1.2.1 -r1.1.2.2
*** m_hash.c 21 Apr 2006 22:54:57 -0000 1.1.2.1
--- m_hash.c 21 Apr 2006 23:06:13 -0000 1.1.2.2
***************
*** 15,18 ****
--- 15,19 ----
struct _hash {
long capa;
+ long size;
t_hashentry **tab;
};
***************
*** 22,25 ****
--- 23,27 ----
t_hash *self = (t_hash *)malloc(sizeof(t_hash));
self->capa = capa;
+ self->size = 0;
self->tab = (t_hashentry **)malloc(capa*sizeof(void*));
for (i=0; i<capa; i++) self->tab[i]=0;
***************
*** 27,31 ****
}
! //t_hashentry *hash_find(t_hash *self, hashkey k) {}
static long hash_hash(t_hash *self, hashkey k) {
--- 29,41 ----
}
! long hash_size(t_hash *self) {return self->size;}
! void hash_each(t_hash *self, hash_iter f, void *data) {
! long i;
! for (i=0; i<self->capa; i++) {
! t_hashentry *e;
! for (e=self->tab[i]; e; e=e->next) f(data,e->k,e->v);
! }
! }
!
static long hash_hash(t_hash *self, hashkey k) {
***************
*** 52,55 ****
--- 62,66 ----
for (e=self->tab[h]; e; e=e->next) {if (e->k==k) {e->v=v; return;}}
t_hashentry *nu = malloc(sizeof(t_hashentry));
+ self->size++;
nu->k=k;
nu->v=v;
***************
*** 65,69 ****
hashvalue v=(*ep)->v;
t_hashentry *next=(*ep)->next;
! free(*ep);
*ep = next;
return v;
--- 76,80 ----
hashvalue v=(*ep)->v;
t_hashentry *next=(*ep)->next;
! free(*ep); self->size--;
*ep = next;
return v;
- Previous message: [PD-cvs] pd/src m_pd.h,1.4.4.11.2.18,1.4.4.11.2.19
- Next message: [PD-cvs] pd/src m_pd.h, 1.4.4.11.2.20, 1.4.4.11.2.21 m_class.c, 1.3.4.7.2.15, 1.3.4.7.2.16 m_glob.c, 1.4.4.2.2.6, 1.4.4.2.2.7 m_hash.c, 1.1.2.2, 1.1.2.3 desire.tk, 1.1.2.173, 1.1.2.174
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the Pd-cvs
mailing list