Changeset 2c3da6 in git for Singular/ndbm.cc


Ignore:
Timestamp:
Dec 4, 1997, 4:21:15 PM (26 years ago)
Author:
Kai Krüger <krueger@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
dbe33ad84b9082ecd9e8734be8728254ffdedec4
Parents:
c30084002d9743a446fe5e4c99701fefa1f99aba
Message:
Modified Files:
 	configure configure.in mod2.h.in ndbm.cc ChangeLog

	* ndbm.cc: don't replace bcopy by memcpy if possible, otherwise
	  the database (>1024 bytes) will be corrupted.
	- added check for bcopy() in configure.


git-svn-id: file:///usr/local/Singular/svn/trunk@944 2c84dea3-7e68-4137-9b89-c4e89433aadc
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Singular/ndbm.cc

    rc300840 r2c3da6  
    55//**************************************************************************/
    66//
    7 // $Id: ndbm.cc,v 1.5 1997-10-09 13:04:07 obachman Exp $
     7// $Id: ndbm.cc,v 1.6 1997-12-04 15:21:14 krueger Exp $
    88//
    99//**************************************************************************/
     
    4949#   include <fcntl.h>
    5050#endif /* macintosh */
     51#ifndef HAVE_BCOPY
    5152#   define bcopy(a,b,c) memcpy(b,a,c)
    52 #   define bzero(a,b)   memset(a,0,b)
    53 #   define bcmp(a,b,c)  memcmp(a,b,c)
     53#endif /* not HAVE_BCOPY */
    5454#include "ndbm.h"
    5555
     
    229229    return (-1);
    230230  }
    231   bzero(ovfbuf, PBLKSIZ);
     231  memset(ovfbuf, 0, PBLKSIZ);
    232232  for (i=0;;) {
    233233    item = makdatum(db->dbm_pagbuf, i);
     
    288288      (void) lseek(db->dbm_pagf, db->dbm_blkptr*PBLKSIZ, L_SET);
    289289      if (read(db->dbm_pagf, db->dbm_pagbuf, PBLKSIZ) != PBLKSIZ)
    290         bzero(db->dbm_pagbuf, PBLKSIZ);
     290        memset(db->dbm_pagbuf, 0, PBLKSIZ);
    291291#ifdef DEBUG
    292292      else if (chkblk(db->dbm_pagbuf) < 0)
     
    324324    (void) lseek(db->dbm_pagf, db->dbm_blkno*PBLKSIZ, L_SET);
    325325    if (read(db->dbm_pagf, db->dbm_pagbuf, PBLKSIZ) != PBLKSIZ)
    326       bzero(db->dbm_pagbuf, PBLKSIZ);
     326      memset(db->dbm_pagbuf, 0, PBLKSIZ);
    327327#ifdef DEBUG
    328328    else if (chkblk(db->dbm_pagbuf) < 0)
     
    349349    (void) lseek(db->dbm_dirf, (long)b*DBLKSIZ, L_SET);
    350350    if (read(db->dbm_dirf, db->dbm_dirbuf, DBLKSIZ) != DBLKSIZ)
    351       bzero(db->dbm_dirbuf, DBLKSIZ);
     351      memset(db->dbm_dirbuf, 0, DBLKSIZ);
    352352  }
    353353  return (db->dbm_dirbuf[i] & (1<<n));
     
    370370    (void) lseek(db->dbm_dirf, (long)b*DBLKSIZ, L_SET);
    371371    if (read(db->dbm_dirf, db->dbm_dirbuf, DBLKSIZ) != DBLKSIZ)
    372       bzero(db->dbm_dirbuf, DBLKSIZ);
     372      memset(db->dbm_dirbuf, 0, DBLKSIZ);
    373373  }
    374374  db->dbm_dirbuf[i] |= 1<<n;
     
    412412    if (n != item.dsize)
    413413      continue;
    414     if (n == 0 || bcmp(&buf[sp[i+1]], item.dptr, n) == 0)
     414    if (n == 0 || memcmp(&buf[sp[i+1]], item.dptr, n) == 0)
    415415      return (i);
    416416  }
     
    524524{
    525525  register short *sp;
    526   register i1, i2;
     526  register i1, i2, tmp;
    527527
    528528  sp = (short *)buf;
     
    532532    i1 = sp[i2];
    533533  i1 -= item.dsize + item1.dsize;
    534   if (i1 <= (i2+3) * sizeof(short))
    535     return (0);
     534  tmp = (i2+3) * sizeof(short);
     535  if (i1 <= tmp) return (0);
    536536  sp[0] += 2;
    537537  sp[++i2] = i1 + item1.dsize;
Note: See TracChangeset for help on using the changeset viewer.