summaryrefslogtreecommitdiff
path: root/textproc/isearch/patches/patch-src_merge.cxx
blob: acb92373a52fc4d38b42b84b2f73effc2693d339 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
$NetBSD: patch-src_merge.cxx,v 1.1 2012/12/21 10:29:47 dholland Exp $

In C++, deleting void pointers is undefined.

--- src/merge.cxx~	1998-11-04 05:12:25.000000000 +0000
+++ src/merge.cxx
@@ -125,7 +125,7 @@ void buildHeap(void *data, size_t heapsi
       if (cmpstatus > 0) {
 	memcpy( ((char *)data + (position * width) ), value, width);
 	//	free(value);
-	delete [] value;
+	delete [] (CHR *)value;
 	return;
       } //child is bigger or same size, back through the loop 
       //again to find a place for value
@@ -140,7 +140,7 @@ void buildHeap(void *data, size_t heapsi
     else {
       memcpy(((char *)data+ (position * width) ), value, width);
       //      free(value);
-      delete [] value;
+      delete [] (CHR *)value;
       return;
     }
   }
@@ -188,6 +188,6 @@ void hsort(void *data, size_t nel, size_
     buildHeap(data, i, width, compar, 0, 0);
   }
   //  free(tmp);
-  delete [] tmp;
+  delete [] (CHR *)tmp;
 }