LCOV - code coverage report
Current view: | top level - Modules/_sqlite - prepare_protocol.c (source / functions) |  |  | Hit | Total | Coverage
Test: | CPython 3.12 LCOV report [commit 5e6661bce9] |  | Lines: | 6 | 18 | 33.3 %
Date: | 2023-03-20 08:15:36 |  | Functions: | 1 | 4 | 25.0 %
|  |  | Branches: | 1 | 6 | 16.7 %

               Branch data     Line data    Source code
           1                 :            : /* prepare_protocol.c - the protocol for preparing values for SQLite
           2                 :            :  *
           3                 :            :  * Copyright (C) 2005-2010 Gerhard Häring <gh@ghaering.de>
           4                 :            :  *
           5                 :            :  * This file is part of pysqlite.
           6                 :            :  *
           7                 :            :  * This software is provided 'as-is', without any express or implied
           8                 :            :  * warranty.  In no event will the authors be held liable for any damages
           9                 :            :  * arising from the use of this software.
          10                 :            :  *
          11                 :            :  * Permission is granted to anyone to use this software for any purpose,
          12                 :            :  * including commercial applications, and to alter it and redistribute it
          13                 :            :  * freely, subject to the following restrictions:
          14                 :            :  *
          15                 :            :  * 1. The origin of this software must not be misrepresented; you must not
          16                 :            :  *    claim that you wrote the original software. If you use this software
          17                 :            :  *    in a product, an acknowledgment in the product documentation would be
          18                 :            :  *    appreciated but is not required.
          19                 :            :  * 2. Altered source versions must be plainly marked as such, and must not be
          20                 :            :  *    misrepresented as being the original software.
          21                 :            :  * 3. This notice may not be removed or altered from any source distribution.
          22                 :            :  */
          23                 :            :
          24                 :            : #include "prepare_protocol.h"
          25                 :            :
          26                 :            : static int
          27                 :          0 : pysqlite_prepare_protocol_init(pysqlite_PrepareProtocol *self, PyObject *args,
          28                 :            :                                PyObject *kwargs)
          29                 :            : {
          30                 :          0 :     return 0;
          31                 :            : }
          32                 :            :
          33                 :            : static int
          34                 :          0 : pysqlite_prepare_protocol_traverse(PyObject *self, visitproc visit, void *arg)
          35                 :            : {
          36   [ #  #  #  # ]:          0 :     Py_VISIT(Py_TYPE(self));
          37                 :          0 :     return 0;
          38                 :            : }
          39                 :            :
          40                 :            : static void
          41                 :          0 : pysqlite_prepare_protocol_dealloc(pysqlite_PrepareProtocol *self)
          42                 :            : {
          43                 :          0 :     PyTypeObject *tp = Py_TYPE(self);
          44                 :          0 :     PyObject_GC_UnTrack(self);
          45                 :          0 :     tp->tp_free(self);
          46                 :          0 :     Py_DECREF(tp);
          47                 :          0 : }
          48                 :            :
          49                 :            : PyDoc_STRVAR(doc, "PEP 246 style object adaption protocol type.");
          50                 :            :
          51                 :            : static PyType_Slot type_slots[] = {
          52                 :            :     {Py_tp_dealloc, pysqlite_prepare_protocol_dealloc},
          53                 :            :     {Py_tp_init, pysqlite_prepare_protocol_init},
          54                 :            :     {Py_tp_traverse, pysqlite_prepare_protocol_traverse},
          55                 :            :     {Py_tp_doc, (void *)doc},
          56                 :            :     {0, NULL},
          57                 :            : };
          58                 :            :
          59                 :            : static PyType_Spec type_spec = {
          60                 :            :     .name = MODULE_NAME ".PrepareProtocol",
          61                 :            :     .basicsize = sizeof(pysqlite_PrepareProtocol),
          62                 :            :     .flags = (Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC |
          63                 :            :               Py_TPFLAGS_IMMUTABLETYPE),
          64                 :            :     .slots = type_slots,
          65                 :            : };
          66                 :            :
          67                 :            : int
          68                 :          1 : pysqlite_prepare_protocol_setup_types(PyObject *module)
          69                 :            : {
          70                 :          1 :     PyObject *type = PyType_FromModuleAndSpec(module, &type_spec, NULL);
          71         [ -  + ]:          1 :     if (type == NULL) {
          72                 :          0 :         return -1;
          73                 :            :     }
          74                 :          1 :     pysqlite_state *state = pysqlite_get_state(module);
          75                 :          1 :     state->PrepareProtocolType = (PyTypeObject *)type;
          76                 :          1 :     return 0;
          77                 :            : }

Generated by: LCOV version 1.14