* Release a result set from memory. * \param _r result set whose rows and values should be freed * \return void */
| 804 | * \return void |
| 805 | */ |
| 806 | static void db_sqlite_free_result_rows(db_res_t* _r) |
| 807 | { |
| 808 | db_val_t* values; |
| 809 | |
| 810 | if (!_r) { |
| 811 | LM_DBG("nothing to free!\n"); |
| 812 | return; |
| 813 | } |
| 814 | |
| 815 | if(RES_ROWS(_r)!=0) |
| 816 | { |
| 817 | values = _r->rows[0].values; |
| 818 | /* db_sqlite_allocate_rows allocates memory for rows and values separately. |
| 819 | * Hence freeing rows using generic function and then values separately*/ |
| 820 | db_free_rows(_r); |
| 821 | pkg_free(values); |
| 822 | } |
| 823 | RES_ROWS(_r) = 0; |
| 824 | RES_ROW_N(_r) = 0; |
| 825 | } |
| 826 | |
| 827 | /** |
| 828 | * Retrieve a result set |
no test coverage detected