On Mon, 18 Feb 2002, Dan Sugalski wrote:
>
> I think I'd rather we did have the cast in there. If nothing else,
> it'll help us note where we've cast incorrectly and, while that might
> just be an error in the casting, it might also indicate an error in
> the logic.
>
OK, this is a roundup of that lot :
Index: embed.c
===================================================================
RCS file: /home/perlcvs/parrot/embed.c,v
retrieving revision 1.10
diff -u -r1.10 embed.c
--- embed.c 15 Feb 2002 02:30:02 -0000 1.10
+++ embed.c 18 Feb 2002 20:57:51 -0000
@@ -129,7 +129,7 @@
pf = PackFile_new();
- if(!PackFile_unpack(interpreter, pf, program_code, (unsigned)program_size) ) {
+ if(!PackFile_unpack(interpreter, pf, (opcode_t *)program_code,
+(size_t)program_size) ) {
fprintf(stderr, "Parrot VM: Can't unpack packfile %s.\n", filename);
return NULL;
}
Index: jit.c
===================================================================
RCS file: /home/perlcvs/parrot/jit.c,v
retrieving revision 1.12
diff -u -r1.12 jit.c
--- jit.c 29 Jan 2002 14:05:31 -0000 1.12
+++ jit.c 18 Feb 2002 20:57:53 -0000
@@ -214,7 +214,7 @@
address = (INTVAL *)&s->strlen;
break;
case 6:
- address = (INTVAL *)s->encoding;
+ address = (INTVAL *)&s->encoding;
break;
case 7:
address = (INTVAL *)&s->type;
Index: key.c
===================================================================
RCS file: /home/perlcvs/parrot/key.c,v
retrieving revision 1.19
diff -u -r1.19 key.c
--- key.c 11 Feb 2002 17:59:11 -0000 1.19
+++ key.c 18 Feb 2002 20:57:54 -0000
@@ -180,10 +180,10 @@
return;
}
if(size > key->size) {
- KEY_PAIR* pair = (KEY_PAIR*)realloc(key->keys,sizeof(KEY_PAIR)*size);
+ KEY_PAIR* pair = (KEY_PAIR*)realloc(key->keys,sizeof(KEY_PAIR *)*size);
if(pair != NULL) {
INTVAL i;
- key->keys = pair;
+ key->keys = (KEY_PAIR **)pair;
for(i=key->size;i<size;i++) {
key->keys[i]->type = enum_key_undef;
}
@@ -197,7 +197,7 @@
for(i=size;i<key->size;i++) {
/* Memory leak in the making */
}
- key->keys = (KEY_PAIR*)realloc(key->keys,sizeof(KEY_PAIR)*size);
+ key->keys = (KEY_PAIR**)realloc(key->keys,sizeof(KEY_PAIR *)*size);
}
key->size = size;
}
@@ -241,7 +241,7 @@
if(key != NULL) {
if((idx >= 0) && (idx < key->size)) {
- KEY_PAIR* pair = &key->keys[idx];
+ KEY_PAIR* pair = (KEY_PAIR *)&key->keys[idx];
return pair->type;
}
else {
@@ -266,7 +266,7 @@
if(key != NULL) {
if((idx >= 0) && (idx < key->size)) {
- KEY_PAIR* pair = &key->keys[idx];
+ KEY_PAIR* pair = (KEY_PAIR *)&key->keys[idx];
if(pair != NULL) {
return pair;
}
@@ -388,7 +388,7 @@
if(key->size > 0) {
/* Memory leak in the making */
key->size--;
- key->keys = (KEY_PAIR*)realloc(key->keys,sizeof(KEY_PAIR)*key->size);
+ key->keys = (KEY_PAIR**)realloc(key->keys,sizeof(KEY_PAIR *)*key->size);
}
else if(key->size == 0) {
fprintf(stderr,
@@ -416,7 +416,7 @@
if(key != NULL) {
if((idx >= 0) && (idx < key->size)) {
- KEY_PAIR* pair = &key->keys[idx];
+ KEY_PAIR* pair = (KEY_PAIR *)&key->keys[idx];
pair->type++;
}
else {
Index: misc.c
===================================================================
RCS file: /home/perlcvs/parrot/misc.c,v
retrieving revision 1.11
diff -u -r1.11 misc.c
--- misc.c 15 Feb 2002 02:30:02 -0000 1.11
+++ misc.c 18 Feb 2002 20:57:58 -0000
@@ -496,7 +496,7 @@
}
-STRING *Parrot_vsprintf_c(struct Parrot_Interp * interpreter, char *pat,
+STRING *Parrot_vsprintf_c(struct Parrot_Interp * interpreter, const char *pat,
va_list * args)
{
STRING *realpat =
@@ -545,7 +545,7 @@
return ret;
}
-STRING *Parrot_sprintf_c(struct Parrot_Interp * interpreter, char *pat,
+STRING *Parrot_sprintf_c(struct Parrot_Interp * interpreter, const char *pat,
...)
{
STRING *ret;
Index: string.c
===================================================================
RCS file: /home/perlcvs/parrot/string.c,v
retrieving revision 1.46
diff -u -r1.46 string.c
--- string.c 5 Feb 2002 11:41:27 -0000 1.46
+++ string.c 18 Feb 2002 20:58:02 -0000
@@ -153,8 +153,8 @@
STRING *dest;
CHARTYPE_TRANSCODER transcoder1 = NULL;
CHARTYPE_TRANSCODER transcoder2 = NULL;
- char *srcstart;
- char *srcend;
+ const char *srcstart;
+ const char *srcend;
char *deststart;
char *destend;
@@ -298,8 +298,8 @@
STRING*
string_substr(struct Parrot_Interp *interpreter, const STRING* src, INTVAL offset,
INTVAL length, STRING** d) {
STRING *dest;
- char *substart;
- char *subend;
+ const char *substart;
+ const char *subend;
UINTVAL true_offset;
UINTVAL true_length;
@@ -350,8 +350,8 @@
*/
STRING*
string_chopn(STRING* s, INTVAL n) {
- char *bufstart = s->bufstart;
- char *bufend = bufstart + s->bufused;
+ const char *bufstart = s->bufstart;
+ const char *bufend = bufstart + s->bufused;
UINTVAL true_n;
true_n = (UINTVAL) n;
@@ -376,10 +376,10 @@
INTVAL
string_compare(struct Parrot_Interp *interpreter, const STRING* s1,
const STRING* s2) {
- char *s1start;
- char *s1end;
- char *s2start;
- char *s2end;
+ const char *s1start;
+ const char *s1end;
+ const char *s2start;
+ const char *s2end;
INTVAL cmp = 0;
if (s1 && !s2) {
@@ -459,8 +459,8 @@
INTVAL i = 0;
if (s) {
- char *start = s->bufstart;
- char *end = start + s->bufused;
+ const char *start = s->bufstart;
+ const char *end = start + s->bufused;
int sign = 1;
BOOLVAL in_number = 0;
@@ -497,8 +497,8 @@
FLOATVAL f = 0.0;
if (s) {
- char *start = s->bufstart;
- char *end = start + s->bufused;
+ const char *start = s->bufstart;
+ const char *end = start + s->bufused;
int sign = 1;
BOOLVAL seen_dot = 0;
BOOLVAL seen_e = 0;
Index: test_main.c
===================================================================
RCS file: /home/perlcvs/parrot/test_main.c,v
retrieving revision 1.44
diff -u -r1.44 test_main.c
--- test_main.c 16 Feb 2002 09:20:43 -0000 1.44
+++ test_main.c 18 Feb 2002 20:58:03 -0000
@@ -14,6 +14,8 @@
#define setopt(flag) Parrot_setflag(interpreter, flag, (*argv)[0]+2);
+extern void exit(int);
+
char *
parseflags(Parrot interpreter, int *argc, char **argv[]);
Index: include/parrot/misc.h
===================================================================
RCS file: /home/perlcvs/parrot/include/parrot/misc.h,v
retrieving revision 1.2
diff -u -r1.2 misc.h
--- include/parrot/misc.h 5 Feb 2002 10:04:10 -0000 1.2
+++ include/parrot/misc.h 18 Feb 2002 20:58:04 -0000
@@ -6,7 +6,7 @@
STRING* Parrot_vsprintf_s(struct Parrot_Interp *, STRING* pat, va_list *);
-STRING* Parrot_vsprintf_c(struct Parrot_Interp *, char * pat, va_list *);
+STRING* Parrot_vsprintf_c(struct Parrot_Interp *, const char * pat, va_list *);
void Parrot_vsprintf(struct Parrot_Interp *, char *targ, char *pat, va_list *);
@@ -14,7 +14,7 @@
STRING* Parrot_sprintf_s(struct Parrot_Interp *, STRING* pat, ...);
-STRING* Parrot_sprintf_c(struct Parrot_Interp *, char * pat, ...);
+STRING* Parrot_sprintf_c(struct Parrot_Interp *, const char * pat, ...);
void Parrot_sprintf(struct Parrot_Interp *, char *targ, char *pat, ...);
Everything still appears to be working and no obvious leaks ....
/J\
--
Jonathan Stowe |
<http://www.gellyfish.com> | This space for rent
|