/[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.11 by sysadm, Tue Oct 14 13:28:28 2025 UTC Revision 1.15 by sysadm, Fri Oct 24 02:07:01 2025 UTC
# Line 185  int article_view_log_merge_inc(ARTICLE_V Line 185  int article_view_log_merge_inc(ARTICLE_V
185          int32_t *aid_new;          int32_t *aid_new;
186          int aid_new_cnt;          int aid_new_cnt;
187          int i, j, k;          int i, j, k;
188            int len;
189    
190          if (p_view_log == NULL)          if (p_view_log == NULL)
191          {          {
# Line 225  int article_view_log_merge_inc(ARTICLE_V Line 226  int article_view_log_merge_inc(ARTICLE_V
226                  }                  }
227          }          }
228    
229          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;
230          k += (p_view_log->aid_base_cnt - i);          if (len > 0)
231          memcpy(aid_new + k, p_view_log->aid_inc + j, sizeof(int32_t) * (size_t)(p_view_log->aid_inc_cnt - j));          {
232          k += (p_view_log->aid_inc_cnt - j);                  memcpy(aid_new + k, p_view_log->aid_base + i,
233                               sizeof(int32_t) * (size_t)len);
234                    k += len;
235            }
236            len = p_view_log->aid_inc_cnt - j;
237            if (len > 0)
238            {
239                    memcpy(aid_new + k, p_view_log->aid_inc + j,
240                               sizeof(int32_t) * (size_t)len);
241                    k += len;
242            }
243    
244          free(p_view_log->aid_base);          free(p_view_log->aid_base);
245          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 278  int article_view_log_is_viewed(int32_t a
278                          mid = (left + right) / 2;                          mid = (left + right) / 2;
279                          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]))
280                          {                          {
281                                  right = mid;                                  right = mid - 1;
282                          }                          }
283                          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]))
284                          {                          {
# Line 316  int article_view_log_set_viewed(int32_t Line 327  int article_view_log_set_viewed(int32_t
327                          mid = (left + right) / 2;                          mid = (left + right) / 2;
328                          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]))
329                          {                          {
330                                  right = mid;                                  right = mid - 1;
331                          }                          }
332                          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]))
333                          {                          {
# Line 360  int article_view_log_set_viewed(int32_t Line 371  int article_view_log_set_viewed(int32_t
371                  right = left + 1;                  right = left + 1;
372          }          }
373    
374          // for (i = p_view_log->aid_inc_cnt - 1; i >= right; i--)          if (p_view_log->aid_inc_cnt > right)
375          // {          {
376          //      p_view_log->aid_inc[i + 1] = p_view_log->aid_inc[i];                  memmove(p_view_log->aid_inc + right + 1,
377          // }                                  p_view_log->aid_inc + right,
378          memmove(p_view_log->aid_inc + right + 1, p_view_log->aid_inc + right,                                  sizeof(int32_t) * (size_t)(p_view_log->aid_inc_cnt - right));
379                          sizeof(int32_t) * (size_t)(p_view_log->aid_inc_cnt - right));          }
380    
381          p_view_log->aid_inc[right] = aid;          p_view_log->aid_inc[right] = aid;
382          (p_view_log->aid_inc_cnt)++;          (p_view_log->aid_inc_cnt)++;


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

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