Kaydet (Commit) f16eda5f authored tarafından Guido van Rossum's avatar Guido van Rossum

cdmodule.c: 2 minor changes by Sjoerd.

üst e10a19ea
...@@ -334,7 +334,7 @@ CD_readda(self, args) ...@@ -334,7 +334,7 @@ CD_readda(self, args)
n = CDreadda(self->ob_cdplayer, (CDFRAME *) getstringvalue(result), numframes); n = CDreadda(self->ob_cdplayer, (CDFRAME *) getstringvalue(result), numframes);
if (n == -1) { if (n == -1) {
DECREF(result); DECREF(result);
err_errno(IOError); /* XXX - ??? (seems to work) */ err_errno(IOError);
return NULL; return NULL;
} }
if (n < numframes) if (n < numframes)
...@@ -685,6 +685,11 @@ CD_removecallback(self, args) ...@@ -685,6 +685,11 @@ CD_removecallback(self, args)
if (!getargs(args, "i", &type)) if (!getargs(args, "i", &type))
return NULL; return NULL;
if (type < 0 || type >= NCALLBACKS) {
err_setstr(RuntimeError, "bad type");
return NULL;
}
CDremovecallback(self->ob_cdparser, (CDDATATYPES) type); CDremovecallback(self->ob_cdparser, (CDDATATYPES) type);
XDECREF(self->ob_cdcallbacks[type].ob_cdcallback); XDECREF(self->ob_cdcallbacks[type].ob_cdcallback);
...@@ -714,7 +719,7 @@ CD_resetparser(self, args) ...@@ -714,7 +719,7 @@ CD_resetparser(self, args)
} }
static object * static object *
CD_setcallback(self, args) CD_addcallback(self, args)
cdparserobject *self; cdparserobject *self;
object *args; object *args;
{ {
...@@ -732,7 +737,11 @@ CD_setcallback(self, args) ...@@ -732,7 +737,11 @@ CD_setcallback(self, args)
return NULL; 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); CDsetcallback(self->ob_cdparser, (CDDATATYPES) type, CD_callback, (void *) self);
#endif
XDECREF(self->ob_cdcallbacks[type].ob_cdcallback); XDECREF(self->ob_cdcallbacks[type].ob_cdcallback);
INCREF(funcobject); INCREF(funcobject);
self->ob_cdcallbacks[type].ob_cdcallback = funcobject; self->ob_cdcallbacks[type].ob_cdcallback = funcobject;
...@@ -745,11 +754,12 @@ CD_setcallback(self, args) ...@@ -745,11 +754,12 @@ CD_setcallback(self, args)
} }
static struct methodlist cdparser_methods[] = { static struct methodlist cdparser_methods[] = {
{"addcallback", CD_addcallback},
{"deleteparser", CD_deleteparser}, {"deleteparser", CD_deleteparser},
{"parseframe", CD_parseframe}, {"parseframe", CD_parseframe},
{"removecallback", CD_removecallback}, {"removecallback", CD_removecallback},
{"resetparser", CD_resetparser}, {"resetparser", CD_resetparser},
{"setcallback", CD_setcallback}, {"setcallback", CD_addcallback}, /* backward compatibility */
{NULL, NULL} /* sentinel */ {NULL, NULL} /* sentinel */
}; };
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment