]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
cdmodule.c: 2 minor changes by Sjoerd.
authorGuido van Rossum <guido@python.org>
Mon, 3 Aug 1992 19:06:59 +0000 (19:06 +0000)
committerGuido van Rossum <guido@python.org>
Mon, 3 Aug 1992 19:06:59 +0000 (19:06 +0000)
Modules/cdmodule.c

index 4f118672e61c88f0a1bd14a362800773d3a37fe0..332b54bfbe788a9ef3feb8d5e0480575035e34bc 100644 (file)
@@ -334,7 +334,7 @@ CD_readda(self, args)
        n = CDreadda(self->ob_cdplayer, (CDFRAME *) getstringvalue(result), numframes);
        if (n == -1) {
                DECREF(result);
-               err_errno(IOError); /* XXX - ??? (seems to work) */
+               err_errno(IOError);
                return NULL;
        }
        if (n < numframes)
@@ -685,6 +685,11 @@ CD_removecallback(self, args)
        if (!getargs(args, "i", &type))
                return NULL;
 
+       if (type < 0 || type >= NCALLBACKS) {
+               err_setstr(RuntimeError, "bad type");
+               return NULL;
+       }
+
        CDremovecallback(self->ob_cdparser, (CDDATATYPES) type);
 
        XDECREF(self->ob_cdcallbacks[type].ob_cdcallback);
@@ -714,7 +719,7 @@ CD_resetparser(self, args)
 }
 
 static object *
-CD_setcallback(self, args)
+CD_addcallback(self, args)
        cdparserobject *self;
        object *args;
 {
@@ -732,7 +737,11 @@ CD_setcallback(self, args)
                return NULL;
        }
 
+#ifdef IRIX_405
+       CDaddcallback(self->ob_cdparser, (CDDATATYPES) type, CD_callback, (void *) self);
+#else
        CDsetcallback(self->ob_cdparser, (CDDATATYPES) type, CD_callback, (void *) self);
+#endif
        XDECREF(self->ob_cdcallbacks[type].ob_cdcallback);
        INCREF(funcobject);
        self->ob_cdcallbacks[type].ob_cdcallback = funcobject;
@@ -745,11 +754,12 @@ CD_setcallback(self, args)
 }
 
 static struct methodlist cdparser_methods[] = {
+       {"addcallback",         CD_addcallback},
        {"deleteparser",        CD_deleteparser},
        {"parseframe",          CD_parseframe},
        {"removecallback",      CD_removecallback},
        {"resetparser",         CD_resetparser},
-       {"setcallback",         CD_setcallback},
+       {"setcallback",         CD_addcallback}, /* backward compatibility */
        {NULL,                  NULL}           /* sentinel */
 };