コード例 #1
0
ファイル: rpmwf.c プロジェクト: cmjonze/rpm5_tarballs
rpmRC wrXAR(const char * xarfn, rpmwf wf)
{
    rpmRC rc;

/*@-noeffect@*/
if (_rpmwf_debug) rpmwfDump(wf, "wrXAR", xarfn);
/*@=noeffect@*/

    wf->xar = rpmxarNew(xarfn, "w");
    if (wf->xar == NULL)
	return RPMRC_FAIL;

    if ((rc = rpmwfPushXAR(wf, "Lead")) != RPMRC_OK)
	goto exit;
    if ((rc = rpmwfPushXAR(wf, "Signature")) != RPMRC_OK)
	goto exit;
    if ((rc = rpmwfPushXAR(wf, "Header")) != RPMRC_OK)
	goto exit;
    if ((rc = rpmwfPushXAR(wf, "Payload")) != RPMRC_OK)
	goto exit;

exit:
    wf->xar = rpmxarFree(wf->xar, "wrXAR");
    return rc;
}
コード例 #2
0
ファイル: rpmxar-js.c プロジェクト: hahnakane/junkcode
static void
rpmxar_dtor(JSContext *cx, JSObject *obj)
{
    void * ptr = JS_GetInstancePrivate(cx, obj, &rpmxarClass, NULL);
    rpmxar xar = ptr;

_DTOR_DEBUG_ENTRY(_debug);

    (void) rpmxarFree(xar, __FUNCTION__);
}
コード例 #3
0
ファイル: rpmwf.c プロジェクト: cmjonze/rpm5_tarballs
/*@-mustmod@*/
static void rpmwfScrub(void *_wf)
	/*@globals fileSystem, internalState @*/
	/*@modifies _wf, fileSystem, internalState @*/
{
    rpmwf wf = (rpmwf) _wf;

    if (wf->b == NULL) {
/*@-dependenttrans -onlytrans @*/	/* rpm needs dependent, xar needs only */
	wf->l = _free(wf->l);
	wf->s = _free(wf->s);
	wf->h = _free(wf->h);
	wf->p = _free(wf->p);
/*@=dependenttrans =onlytrans @*/
    }

    wf->xar = rpmxarFree(wf->xar, "rpmwfFree");
    (void) rpmwfFini(wf);

    wf->fn = _free(wf->fn);
}
コード例 #4
0
ファイル: rpmwf.c プロジェクト: cmjonze/rpm5_tarballs
rpmwf rdXAR(const char * xarfn)
{
    rpmwf wf;
    rpmRC rc;

    if ((wf = rpmwfNew(xarfn)) == NULL)
	return wf;

    wf->xar = rpmxarNew(wf->fn, "r");
    if (wf->xar == NULL) {
	wf = rpmwfFree(wf);
	return NULL;
    }

    while (rpmxarNext(wf->xar) == 0)
	rc = rpmwfPullXAR(wf, NULL);
    wf->xar = rpmxarFree(wf->xar, "rdXAR");

/*@-noeffect@*/
if (_rpmwf_debug) rpmwfDump(wf, "rdXAR", xarfn);
/*@=noeffect@*/

    return wf;
}