| 138 | } |
| 139 | |
| 140 | static SDL_DataQueuePacket * |
| 141 | AllocateDataQueuePacket(SDL_DataQueue *queue) |
| 142 | { |
| 143 | SDL_DataQueuePacket *packet; |
| 144 | |
| 145 | SDL_assert(queue != NULL); |
| 146 | |
| 147 | packet = queue->pool; |
| 148 | if (packet != NULL) { |
| 149 | /* we have one available in the pool. */ |
| 150 | queue->pool = packet->next; |
| 151 | } else { |
| 152 | /* Have to allocate a new one! */ |
| 153 | packet = (SDL_DataQueuePacket *) SDL_malloc(sizeof (SDL_DataQueuePacket) + queue->packet_size); |
| 154 | if (packet == NULL) { |
| 155 | return NULL; |
| 156 | } |
| 157 | } |
| 158 | |
| 159 | packet->datalen = 0; |
| 160 | packet->startpos = 0; |
| 161 | packet->next = NULL; |
| 162 | |
| 163 | SDL_assert((queue->head != NULL) == (queue->queued_bytes != 0)); |
| 164 | if (queue->tail == NULL) { |
| 165 | queue->head = packet; |
| 166 | } else { |
| 167 | queue->tail->next = packet; |
| 168 | } |
| 169 | queue->tail = packet; |
| 170 | return packet; |
| 171 | } |
| 172 | |
| 173 | |
| 174 | int |
no test coverage detected