Browse Source

tweak interface to do the right thing, after useful comments from millert@

(mostly use a calloc function to avoid potential integer overflow)
OPENBSD_5_6
espie 10 years ago
parent
commit
c49c33b22a
1 changed files with 5 additions and 3 deletions
  1. +5
    -3
      src/include/ohash.h

+ 5
- 3
src/include/ohash.h View File

@ -1,6 +1,6 @@
#ifndef OHASH_H #ifndef OHASH_H
#define OHASH_H #define OHASH_H
/* $OpenBSD: ohash.h,v 1.10 2012/09/23 15:05:23 espie Exp $ */
/* $OpenBSD: ohash.h,v 1.11 2014/05/12 19:07:37 espie Exp $ */
/* ex:ts=8 sw=4: /* ex:ts=8 sw=4:
*/ */
@ -24,16 +24,18 @@
* techniques, and more efficient in most cases. * techniques, and more efficient in most cases.
*/ */
/* user-visible data structure */
struct ohash_info { struct ohash_info {
ptrdiff_t key_offset; ptrdiff_t key_offset;
void *data; /* user data */ void *data; /* user data */
void *(*halloc)(size_t, void *);
void (*hfree)(void *, size_t, void *);
void *(*calloc)(size_t, size_t, void *);
void (*free)(void *, void *);
void *(*alloc)(size_t, void *); void *(*alloc)(size_t, void *);
}; };
struct _ohash_record; struct _ohash_record;
/* private structure. It's there just so you can do a sizeof */
struct ohash { struct ohash {
struct _ohash_record *t; struct _ohash_record *t;
struct ohash_info info; struct ohash_info info;


Loading…
Cancel
Save