From cb00c7036f10b2b56d608113a3d1a433fab82bed Mon Sep 17 00:00:00 2001 From: Maksim Shabunin Date: Wed, 15 Apr 2015 15:46:07 +0300 Subject: [PATCH] Fix cache error during SVM train --- modules/ml/src/svm.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/modules/ml/src/svm.cpp b/modules/ml/src/svm.cpp index 05994eb..0012a33 100644 --- a/modules/ml/src/svm.cpp +++ b/modules/ml/src/svm.cpp @@ -538,6 +538,8 @@ public: { kr.idx = cache_size; cache_size++; + if (!lru_last) + lru_last = i1+1; } else { @@ -546,6 +548,8 @@ public: last.idx = -1; lru_cache[last.prev].next = 0; lru_last = last.prev; + last.prev = 0; + last.next = 0; } kernel->calc( sample_count, var_count, samples.ptr(), samples.ptr(i1), lru_cache_data.ptr(kr.idx) ); @@ -561,6 +565,8 @@ public: else lru_first = kr.next; } + if (lru_first) + lru_cache[lru_first].prev = i1+1; kr.next = lru_first; kr.prev = 0; lru_first = i1+1; -- 2.7.4