Allocate spec line buffer separately from spec struct
- Further preliminaries for dynamic buffer resizing
This commit is contained in:
parent
0c737f72b2
commit
729fd554ee
|
@ -203,7 +203,7 @@ static int copyNextLineFromOFI(rpmSpec spec, OFI_t *ofi)
|
||||||
|
|
||||||
/* Don't expand macros (eg. %define) in false branch of %if clause */
|
/* Don't expand macros (eg. %define) in false branch of %if clause */
|
||||||
if (spec->readStack->reading &&
|
if (spec->readStack->reading &&
|
||||||
expandMacros(spec, spec->macros, spec->lbuf, sizeof(spec->lbuf))) {
|
expandMacros(spec, spec->macros, spec->lbuf, spec->lbufSize)) {
|
||||||
rpmlog(RPMLOG_ERR, _("line %d: %s\n"),
|
rpmlog(RPMLOG_ERR, _("line %d: %s\n"),
|
||||||
spec->lineNum, spec->lbuf);
|
spec->lineNum, spec->lbuf);
|
||||||
return -1;
|
return -1;
|
||||||
|
|
|
@ -41,7 +41,8 @@ struct rpmSpec_s {
|
||||||
const char * rootDir;
|
const char * rootDir;
|
||||||
|
|
||||||
struct OpenFileInfo * fileStack;
|
struct OpenFileInfo * fileStack;
|
||||||
char lbuf[10*BUFSIZ];
|
char *lbuf;
|
||||||
|
size_t lbufSize;
|
||||||
size_t lbufOff;
|
size_t lbufOff;
|
||||||
char nextpeekc;
|
char nextpeekc;
|
||||||
char * nextline;
|
char * nextline;
|
||||||
|
|
|
@ -160,6 +160,8 @@ rpmSpec newSpec(void)
|
||||||
spec->specFile = NULL;
|
spec->specFile = NULL;
|
||||||
|
|
||||||
spec->fileStack = NULL;
|
spec->fileStack = NULL;
|
||||||
|
spec->lbufSize = BUFSIZ * 10;
|
||||||
|
spec->lbuf = xmalloc(spec->lbufSize);
|
||||||
spec->lbuf[0] = '\0';
|
spec->lbuf[0] = '\0';
|
||||||
spec->line = spec->lbuf;
|
spec->line = spec->lbuf;
|
||||||
spec->nextline = NULL;
|
spec->nextline = NULL;
|
||||||
|
@ -237,6 +239,7 @@ rpmSpec rpmSpecFree(rpmSpec spec)
|
||||||
rl->next = NULL;
|
rl->next = NULL;
|
||||||
free(rl);
|
free(rl);
|
||||||
}
|
}
|
||||||
|
spec->lbuf = _free(spec->lbuf);
|
||||||
|
|
||||||
spec->sourceRpmName = _free(spec->sourceRpmName);
|
spec->sourceRpmName = _free(spec->sourceRpmName);
|
||||||
spec->sourcePkgId = _free(spec->sourcePkgId);
|
spec->sourcePkgId = _free(spec->sourcePkgId);
|
||||||
|
|
Loading…
Reference in New Issue