Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit e537240

Browse files
committed
* Changed many files to use mkvalue() instead of newtupleobject().
* Fixcprt.py: added [-y file] option, do only files younger than file. * modsupport.[ch]: added vmkvalue(). * intobject.c: use mkvalue(). * stringobject.c: added "formatstring"; renamed string* to string_*; ceval.c: call formatstring for string % value. * longobject.c: close memory leak in divmod. * parsetok.c: set result node to NULL when returning an error.
1 parent f48b419 commit e537240

21 files changed

Lines changed: 503 additions & 273 deletions

Include/modsupport.h

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/***********************************************************
2-
Copyright 1991, 1992 by Stichting Mathematisch Centrum, Amsterdam, The
3-
Netherlands.
2+
Copyright 1991, 1992, 1993 by Stichting Mathematisch Centrum,
3+
Amsterdam, The Netherlands.
44
55
All Rights Reserved
66
@@ -24,9 +24,21 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
2424

2525
/* Module support interface */
2626

27+
#ifdef HAVE_PROTOTYPES
28+
#define USE_STDARG
29+
#endif
30+
31+
#ifdef USE_STDARG
32+
#include <stdarg.h>
33+
#else
34+
#include <varargs.h>
35+
#endif
36+
2737
extern object *initmodule PROTO((char *, struct methodlist *));
2838
extern int getargs PROTO((object *, char *, ...));
39+
extern int vgetargs PROTO((object *, char *, va_list));
2940
extern object *mkvalue PROTO((char *, ...));
41+
extern object *vmkvalue PROTO((char *, va_list));
3042

3143
#define getnoarg(v) getargs(v, "")
3244
#define getintarg(v, a) getargs(v, "i", a)

Include/stringobject.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/***********************************************************
2-
Copyright 1991, 1992 by Stichting Mathematisch Centrum, Amsterdam, The
3-
Netherlands.
2+
Copyright 1991, 1992, 1993 by Stichting Mathematisch Centrum,
3+
Amsterdam, The Netherlands.
44
55
All Rights Reserved
66
@@ -58,6 +58,7 @@ extern unsigned int getstringsize PROTO((object *));
5858
extern char *getstringvalue PROTO((object *));
5959
extern void joinstring PROTO((object **, object *));
6060
extern int resizestring PROTO((object **, int));
61+
extern object *formatstring PROTO((object *, object *));
6162

6263
/* Macro, trading safety for speed */
6364
#define GETSTRINGVALUE(op) ((op)->ob_sval)

Modules/almodule.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/**********************************************************
2-
Copyright 1991, 1992 by Stichting Mathematisch Centrum, Amsterdam, The
3-
Netherlands.
2+
Copyright 1991, 1992, 1993 by Stichting Mathematisch Centrum,
3+
Amsterdam, The Netherlands.
44
55
All Rights Reserved
66

Modules/clmodule.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/***********************************************************
2-
Copyright 1991, 1992 by Stichting Mathematisch Centrum, Amsterdam, The
3-
Netherlands.
2+
Copyright 1991, 1992, 1993 by Stichting Mathematisch Centrum,
3+
Amsterdam, The Netherlands.
44
55
All Rights Reserved
66

Modules/flmodule.c

Lines changed: 15 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/**********************************************************
2-
Copyright 1991, 1992 by Stichting Mathematisch Centrum, Amsterdam, The
3-
Netherlands.
2+
Copyright 1991, 1992, 1993 by Stichting Mathematisch Centrum,
3+
Amsterdam, The Netherlands.
44
55
All Rights Reserved
66
@@ -614,18 +614,12 @@ call_forms_OUTfOUTf (func, obj, args)
614614
object *args;
615615
{
616616
float f1, f2;
617-
object *arg;
618617

619618
if (!getnoarg(args)) return NULL;
620619

621620
(*func) (obj, &f1, &f2);
622-
623-
arg = newtupleobject (2);
624-
if (arg == NULL) return NULL;
625621

626-
settupleitem (arg, 0, newfloatobject (f1));
627-
settupleitem (arg, 1, newfloatobject (f2));
628-
return arg;
622+
return mkvalue("(ff)", f1, f2);
629623
}
630624

631625
#ifdef UNUSED
@@ -966,20 +960,13 @@ get_clock(g, args)
966960
object *args;
967961
{
968962
int i0, i1, i2;
969-
object *arg;
970963

971964
if (!getnoarg(args))
972965
return NULL;
973966

974967
fl_get_clock (g->ob_generic, &i0, &i1, &i2);
975968

976-
arg = newtupleobject (3);
977-
if (arg == NULL) return NULL;
978-
979-
settupleitem (arg, 0, newintobject (i0));
980-
settupleitem (arg, 1, newintobject (i1));
981-
settupleitem (arg, 2, newintobject (i2));
982-
return arg;
969+
return mkvalue("(iii)", i0, i1, i2);
983970
}
984971

985972
static struct methodlist clock_methods[] = {
@@ -2064,11 +2051,9 @@ forms_do_or_check_forms(dummy, args, func)
20642051
if (my_event_callback == NULL)
20652052
return newintobject(-1L);
20662053
dev = fl_qread(&val);
2067-
arg = newtupleobject(2);
2054+
arg = mkvalue("(ih)", dev, val);
20682055
if (arg == NULL)
20692056
return NULL;
2070-
settupleitem(arg, 0, newintobject((long)dev));
2071-
settupleitem(arg, 1, newintobject((long)val));
20722057
res = call_object(my_event_callback, arg);
20732058
XDECREF(res);
20742059
DECREF(arg);
@@ -2085,11 +2070,9 @@ forms_do_or_check_forms(dummy, args, func)
20852070
INCREF(g);
20862071
return ((object *) g);
20872072
}
2088-
arg = newtupleobject(2);
2089-
INCREF(g);
2090-
settupleitem(arg, 0, (object *)g);
2091-
INCREF(g->ob_callback_arg);
2092-
settupleitem(arg, 1, g->ob_callback_arg);
2073+
arg = mkvalue("(OO)", (object *)g, g->ob_callback_arg);
2074+
if (arg == NULL)
2075+
return NULL;
20932076
res = call_object(g->ob_callback, arg);
20942077
XDECREF(res);
20952078
DECREF(arg);
@@ -2259,18 +2242,12 @@ forms_qread(self, args)
22592242
object *self;
22602243
object *args;
22612244
{
2262-
long retval;
2263-
short arg1;
2245+
int dev;
2246+
short val;
22642247
BGN_SAVE
2265-
retval = fl_qread(&arg1);
2248+
dev = fl_qread(&val);
22662249
END_SAVE
2267-
{
2268-
object *v = newtupleobject(2);
2269-
if (v == NULL) return NULL;
2270-
settupleitem(v, 0, newintobject(retval));
2271-
settupleitem(v, 1, newintobject((long)arg1));
2272-
return v;
2273-
}
2250+
return mkvalue("(ih)", dev, val);
22742251
}
22752252

22762253
static object *
@@ -2336,43 +2313,26 @@ forms_getmcolor(self, args)
23362313
{
23372314
int arg;
23382315
short r, g, b;
2339-
object *v;
23402316

23412317
if (!getintarg(args, &arg)) return NULL;
23422318

23432319
fl_getmcolor(arg, &r, &g, &b);
23442320

2345-
v = newtupleobject(3);
2346-
2347-
if (v == NULL) return NULL;
2348-
2349-
settupleitem(v, 0, newintobject((long)r));
2350-
settupleitem(v, 1, newintobject((long)g));
2351-
settupleitem(v, 2, newintobject((long)b));
2352-
2353-
return v;
2321+
return mkvalue("(hhh)", r, g, b);
23542322
}
23552323

23562324
static object *
23572325
forms_get_mouse(self, args)
23582326
object *self;
23592327
object *args;
23602328
{
2361-
float x, y ;
2362-
object *v;
2329+
float x, y;
23632330

23642331
if (!getnoarg(args)) return NULL;
23652332

23662333
fl_get_mouse(&x, &y);
23672334

2368-
v = newtupleobject(2);
2369-
2370-
if (v == NULL) return NULL;
2371-
2372-
settupleitem(v, 0, newfloatobject(x));
2373-
settupleitem(v, 1, newfloatobject(y));
2374-
2375-
return v;
2335+
return mkvalue("(ff)", x, y);
23762336
}
23772337

23782338
static object *

Modules/fmmodule.c

Lines changed: 11 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/***********************************************************
2-
Copyright 1991, 1992 by Stichting Mathematisch Centrum, Amsterdam, The
3-
Netherlands.
2+
Copyright 1991, 1992, 1993 by Stichting Mathematisch Centrum,
3+
Amsterdam, The Netherlands.
44
55
All Rights Reserved
66
@@ -134,22 +134,15 @@ fh_getfontinfo(self, args)
134134
err_setstr(RuntimeError, "error in fmgetfontinfo");
135135
return NULL;
136136
}
137-
v = newtupleobject(8);
138-
if (v == NULL)
139-
return NULL;
140-
#define SET(i, member) settupleitem(v, i, newintobject(info.member))
141-
SET(0, printermatched);
142-
SET(1, fixed_width);
143-
SET(2, xorig);
144-
SET(3, yorig);
145-
SET(4, xsize);
146-
SET(5, ysize);
147-
SET(6, height);
148-
SET(7, nglyphs);
149-
#undef SET
150-
if (err_occurred())
151-
return NULL;
152-
return v;
137+
return mkvalue("(llllllll)",
138+
info.printermatched,
139+
info.fixed_width,
140+
info.xorig,
141+
info.yorig,
142+
info.xsize,
143+
info.ysize,
144+
info.height,
145+
info.nglyphs);
153146
}
154147

155148
#if 0

Modules/mathmodule.c

Lines changed: 4 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/***********************************************************
2-
Copyright 1991, 1992 by Stichting Mathematisch Centrum, Amsterdam, The
3-
Netherlands.
2+
Copyright 1991, 1992, 1993 by Stichting Mathematisch Centrum,
3+
Amsterdam, The Netherlands.
44
55
All Rights Reserved
66
@@ -136,7 +136,6 @@ math_frexp(self, args)
136136
object *self;
137137
object *args;
138138
{
139-
object *v;
140139
double x;
141140
int i;
142141
if (!getdoublearg(args, &x))
@@ -146,16 +145,7 @@ math_frexp(self, args)
146145
CHECK(x);
147146
if (errno != 0)
148147
return math_error();
149-
v = newtupleobject(2);
150-
if (v != NULL) {
151-
settupleitem(v, 0, newfloatobject(x));
152-
settupleitem(v, 1, newintobject((long)i));
153-
if (err_occurred()) {
154-
DECREF(v);
155-
v = NULL;
156-
}
157-
}
158-
return v;
148+
return mkvalue("(di)", x, i);
159149
}
160150

161151
static object *
@@ -181,7 +171,6 @@ math_modf(self, args)
181171
object *self;
182172
object *args;
183173
{
184-
object *v;
185174
double x, y;
186175
if (!getdoublearg(args, &x))
187176
return NULL;
@@ -190,16 +179,7 @@ math_modf(self, args)
190179
CHECK(x);
191180
if (errno != 0)
192181
return math_error();
193-
v = newtupleobject(2);
194-
if (v != NULL) {
195-
settupleitem(v, 0, newfloatobject(x));
196-
settupleitem(v, 1, newfloatobject(y));
197-
if (err_occurred()) {
198-
DECREF(v);
199-
v = NULL;
200-
}
201-
}
202-
return v;
182+
return mkvalue("(dd)", x, y);
203183
}
204184

205185
static struct methodlist math_methods[] = {

Modules/posixmodule.c

Lines changed: 17 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -216,26 +216,17 @@ posix_do_stat(self, args, statfunc)
216216
END_SAVE
217217
if (res != 0)
218218
return posix_error();
219-
v = newtupleobject(10);
220-
if (v == NULL)
221-
return NULL;
222-
#define SET(i, st_member) settupleitem(v, i, newintobject((long)st.st_member))
223-
SET(0, st_mode);
224-
SET(1, st_ino);
225-
SET(2, st_dev);
226-
SET(3, st_nlink);
227-
SET(4, st_uid);
228-
SET(5, st_gid);
229-
SET(6, st_size);
230-
SET(7, st_atime);
231-
SET(8, st_mtime);
232-
SET(9, st_ctime);
233-
#undef SET
234-
if (err_occurred()) {
235-
DECREF(v);
236-
return NULL;
237-
}
238-
return v;
219+
v = mkvalue("(llllllllll)",
220+
(long)st.st_mode,
221+
(long)st.st_ino,
222+
(long)st.st_dev,
223+
(long)st.st_nlink,
224+
(long)st.st_uid,
225+
(long)st.st_gid,
226+
(long)st.st_size,
227+
(long)st.st_atime,
228+
(long)st.st_mtime,
229+
(long)st.st_ctime);
239230
}
240231

241232

@@ -477,21 +468,12 @@ posix_uname(self, args)
477468
END_SAVE
478469
if (res < 0)
479470
return posix_error();
480-
v = newtupleobject(5);
481-
if (v == NULL)
482-
return NULL;
483-
#define SET(i, member) settupleitem(v, i, newstringobject(u.member))
484-
SET(0, sysname);
485-
SET(1, nodename);
486-
SET(2, release);
487-
SET(3, version);
488-
SET(4, machine);
489-
#undef SET
490-
if (err_occurred()) {
491-
DECREF(v);
492-
return NULL;
493-
}
494-
return v;
471+
return mkvalue("(sssss)",
472+
u.sysname,
473+
u.nodename,
474+
u.release,
475+
u.version,
476+
u.machine);
495477
}
496478
#endif /* NO_UNAME */
497479

0 commit comments

Comments
 (0)