Ticket Hash: | 806f3be2d7773468bb587031b58e185c11ae1022 | ||
Title: | Proposal to inline some functions | ||
Status: | Closed | Type: | Feature_Request |
Severity: | Cosmetic | Priority: | Immediate |
Subsystem: | B-Tree | Resolution: | Rejected |
Last Modified: |
2009-09-14 15:35:28 15.81 years ago |
Created: |
2009-09-14 15:17:54 15.81 years ago |
Version Found In: | 3.6.18 |
Description: | ||||
There's no problem. I would like to propose inlining of several pretty often used functions: sqlite3BtreeGetPageSize sqlite3BtreePager sqlite3PagerBackupPtr sqlite3PagerRef sqlite3PagerPageRefcount sqlite3PagerGetData sqlite3PagerGetExtra sqlite3PagerIsreadonly sqlite3PagerRefcount sqlite3PagerFilename sqlite3PagerVfs sqlite3PagerFile sqlite3PagerJournalname sqlite3PagerNosync sqlite3PagerTempSpace sqlite3PagerIsMemdb For instance, I introduced a compiler flag named INLDEF and for each ot these functions I issued: in the declaration section: <verbatim> #ifdef INLDEF # define sqlite3BtreeGetPageSize(a) (a)->pBt->pageSize #else//INLDEF SQLITE_PRIVATE INL int sqlite3BtreeGetPageSize(Btree*); #endif//INLDEF </verbatim> and in the implementation section: <verbatim> #ifndef INLDEF SQLITE_PRIVATE int sqlite3BtreeGetPageSize(Btree *p){ return p->pBt->pageSize; } #endif//INLDEF </verbatim> Best regards: Chris <hr><i>drh added on 2009-09-14 15:35:28:</i><br> Modern C compilers do this kind of inlining automatically. There is no need to complicate the code. |