For PR1146:

Make ParamAttrsList objects unique. You can no longer directly create or
destroy them but instead must go through the ParamAttrsList::get()
interface.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36327 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Reid Spencer
2007-04-22 05:46:44 +00:00
parent 3b87d6a7b5
commit 4f859aa532
12 changed files with 211 additions and 192 deletions

View File

@@ -1078,16 +1078,18 @@ const Type *BytecodeReader::ParseType() {
ParamAttrsList *BytecodeReader::ParseParamAttrsList() {
unsigned NumAttrs = read_vbr_uint();
ParamAttrsList *Attrs = 0;
ParamAttrsList *PAL = 0;
if (NumAttrs) {
Attrs = new ParamAttrsList();
ParamAttrsVector Attrs;
ParamAttrsWithIndex PAWI;
while (NumAttrs--) {
uint16_t index = read_vbr_uint();
uint16_t attrs = read_vbr_uint();
Attrs->addAttributes(index, attrs);
PAWI.index = read_vbr_uint();
PAWI.attrs = read_vbr_uint();
Attrs.push_back(PAWI);
}
PAL = ParamAttrsList::get(Attrs);
}
return Attrs;
return PAL;
}