static int manageZlib(EjsZlib *db, int flags) { if (flags & MPR_MANAGE_MARK) { ejsManagePot(db, flags); } else if (flags & MPR_MANAGE_FREE) { if (db->sdb) { zlibClose(db->ejs, db, 0, 0); } } return 0; }
static void manageArray(EjsArray *ap, int flags) { EjsObj *vp, **data; int i, length; if (flags & MPR_MANAGE_MARK) { length = ap->length; data = ap->data; for (i = length - 1; i >= 0; i--) { if ((vp = data[i]) != 0) { mprMark(vp); } } mprMark(data); ejsManagePot((EjsPot*) ap, flags); } }
static void manageWorker(EjsWorker *worker, int flags) { if (flags & MPR_MANAGE_MARK) { ejsManagePot(worker, flags); mprMark(worker->name); mprMark(worker->ejs); mprMark(worker->event); mprMark(worker->pair); mprMark(worker->scriptFile); mprMark(worker->scriptLiteral); } else if (flags & MPR_MANAGE_FREE) { if (!worker->inside) { removeWorker(worker); } if (worker->pair) { if (worker->pair->pair) { worker->pair->pair = 0; } worker->pair = 0; } } }