/[LeafOK_CVS]/lbbs/src/article_view_log.c
ViewVC logotype

Diff of /lbbs/src/article_view_log.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.13 by sysadm, Wed Oct 15 03:02:17 2025 UTC Revision 1.18 by sysadm, Tue Nov 11 00:28:05 2025 UTC
# Line 1  Line 1 
1  /***************************************************************************  /* SPDX-License-Identifier: GPL-3.0-or-later */
2                                           article_view_log.c  -  description  /*
3                                                           -------------------   * article_view_log
4          Copyright            : (C) 2004-2025 by Leaflet   *   - data persistence and query of article view log
5          Email                : leaflet@leafok.com   *
6   ***************************************************************************/   * Copyright (C) 2004-2025  Leaflet <leaflet@leafok.com>
7     */
8  /***************************************************************************  
9   *                                                                         *  #ifdef HAVE_CONFIG_H
10   *   This program is free software; you can redistribute it and/or modify  *  #include "config.h"
11   *   it under the terms of the GNU General Public License as published by  *  #endif
  *   the Free Software Foundation; either version 3 of the License, or     *  
  *   (at your option) any later version.                                   *  
  *                                                                         *  
  ***************************************************************************/  
12    
13  #include "article_view_log.h"  #include "article_view_log.h"
14  #include "common.h"  #include "common.h"
# Line 185  int article_view_log_merge_inc(ARTICLE_V Line 181  int article_view_log_merge_inc(ARTICLE_V
181          int32_t *aid_new;          int32_t *aid_new;
182          int aid_new_cnt;          int aid_new_cnt;
183          int i, j, k;          int i, j, k;
184            int len;
185    
186          if (p_view_log == NULL)          if (p_view_log == NULL)
187          {          {
# Line 225  int article_view_log_merge_inc(ARTICLE_V Line 222  int article_view_log_merge_inc(ARTICLE_V
222                  }                  }
223          }          }
224    
225          memcpy(aid_new + k, p_view_log->aid_base + i, sizeof(int32_t) * (size_t)(p_view_log->aid_base_cnt - i));          len = p_view_log->aid_base_cnt - i;
226          k += (p_view_log->aid_base_cnt - i);          if (len > 0)
227          memcpy(aid_new + k, p_view_log->aid_inc + j, sizeof(int32_t) * (size_t)(p_view_log->aid_inc_cnt - j));          {
228          k += (p_view_log->aid_inc_cnt - j);                  memcpy(aid_new + k, p_view_log->aid_base + i,
229                               sizeof(int32_t) * (size_t)len);
230                    k += len;
231            }
232            len = p_view_log->aid_inc_cnt - j;
233            if (len > 0)
234            {
235                    memcpy(aid_new + k, p_view_log->aid_inc + j,
236                               sizeof(int32_t) * (size_t)len);
237                    k += len;
238            }
239    
240          free(p_view_log->aid_base);          free(p_view_log->aid_base);
241          p_view_log->aid_base = aid_new;          p_view_log->aid_base = aid_new;
# Line 267  int article_view_log_is_viewed(int32_t a Line 274  int article_view_log_is_viewed(int32_t a
274                          mid = (left + right) / 2;                          mid = (left + right) / 2;
275                          if (aid < (i == 0 ? p_view_log->aid_base[mid] : p_view_log->aid_inc[mid]))                          if (aid < (i == 0 ? p_view_log->aid_base[mid] : p_view_log->aid_inc[mid]))
276                          {                          {
277                                  right = mid;                                  right = mid - 1;
278                          }                          }
279                          else if (aid > (i == 0 ? p_view_log->aid_base[mid] : p_view_log->aid_inc[mid]))                          else if (aid > (i == 0 ? p_view_log->aid_base[mid] : p_view_log->aid_inc[mid]))
280                          {                          {
# Line 316  int article_view_log_set_viewed(int32_t Line 323  int article_view_log_set_viewed(int32_t
323                          mid = (left + right) / 2;                          mid = (left + right) / 2;
324                          if (aid < (i == 0 ? p_view_log->aid_base[mid] : p_view_log->aid_inc[mid]))                          if (aid < (i == 0 ? p_view_log->aid_base[mid] : p_view_log->aid_inc[mid]))
325                          {                          {
326                                  right = mid;                                  right = mid - 1;
327                          }                          }
328                          else if (aid > (i == 0 ? p_view_log->aid_base[mid] : p_view_log->aid_inc[mid]))                          else if (aid > (i == 0 ? p_view_log->aid_base[mid] : p_view_log->aid_inc[mid]))
329                          {                          {


Legend:
Removed lines/characters  
Changed lines/characters
  Added lines/characters

webmaster@leafok.com
ViewVC Help
Powered by ViewVC 1.3.0-beta1