CssmDlDbHandle *handles() const { return CssmDlDbHandle::overlay(DLDBHandle); }
CssmDlDbHandle * &handles() { return CssmDlDbHandle::overlayVar(DLDBHandle); }
- CssmDlDbHandle &operator [] (uint32 ix) const
- { assert(ix < count()); return CssmDlDbHandle::overlay(DLDBHandle[ix]); }
+ CssmDlDbHandle &operator [] (uint32 ix) const {
+ if (ix >= count()) {
+ secemergency("CssmDlDbList: attempt to index beyond bounds");
+ abort();
+ }
+ return CssmDlDbHandle::overlay(DLDBHandle[ix]);
+ }
void setDlDbList(uint32 n, CSSM_DL_DB_HANDLE *list)
{ count() = n; handles() = CssmDlDbHandle::overlay(list); }
{ return CssmDbAttributeInfo::overlayVar(AttributeInfo); }
CssmDbAttributeInfo *attributes() const
{ return CssmDbAttributeInfo::overlay(AttributeInfo); }
- CssmDbAttributeInfo &at(uint32 ix) const
- { assert(ix < size()); return attributes()[ix]; }
+ CssmDbAttributeInfo &at(uint32 ix) const {
+ if (ix >= size()) {
+ secemergency("CssmDbRecordAttributeInfo: attempt to index beyond bounds");
+ abort();
+ }
+ return attributes()[ix];
+ }
CssmDbAttributeInfo &operator [] (uint32 ix) const { return at(ix); }
};
{ return CssmDbAttributeData::overlay(AttributeData); }
// Attributes by position
- CssmDbAttributeData &at(unsigned int ix) const
- { assert(ix < size()); return attributes()[ix]; }
+ CssmDbAttributeData &at(unsigned int ix) const {
+ if (ix >= size()) {
+ secemergency("CssmDbRecordAttributeData: attempt to index beyond bounds");
+ abort();
+ }
+ return attributes()[ix];
+ }
CssmDbAttributeData &operator [] (unsigned int ix) const { return at(ix); }
CssmSelectionPredicate *predicates() const
{ return CssmSelectionPredicate::overlay(SelectionPredicate); }
- CssmSelectionPredicate &at(uint32 ix) const
- { assert(ix < size()); return predicates()[ix]; }
+ CssmSelectionPredicate &at(uint32 ix) const {
+ if (ix >= size()) {
+ secemergency("CssmDbRecordAttributeData: attempt to index beyond bounds");
+ abort();
+ }
+ return predicates()[ix];
+ }
CssmSelectionPredicate &operator[] (uint32 ix) const { return at(ix); }