Skip to content

Commit 2baf90e

Browse files
committed
修正 LruCache 方法行为
1 parent 13a2bff commit 2baf90e

File tree

6 files changed

+23
-75
lines changed

6 files changed

+23
-75
lines changed

docs

Submodule docs updated from f5e0c4b to b2c239a

fibjs/include/LruCache.h

+1-2
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,7 @@ class LruCache: public LruCache_base
4242
virtual result_t get(exlib::string name, v8::Local<v8::Value> &retVal);
4343
virtual result_t get(exlib::string name, v8::Local<v8::Function> updater, v8::Local<v8::Value> &retVal);
4444
virtual result_t set(exlib::string name, v8::Local<v8::Value> value);
45-
virtual result_t put(exlib::string name, v8::Local<v8::Value> value);
46-
virtual result_t put(v8::Local<v8::Object> map);
45+
virtual result_t set(v8::Local<v8::Object> map);
4746
virtual result_t remove(exlib::string name);
4847
virtual result_t isEmpty(bool &retVal);
4948

fibjs/include/ifs/LruCache.h

+2-20
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,7 @@ class LruCache_base : public object_base
3030
virtual result_t get(exlib::string name, v8::Local<v8::Value>& retVal) = 0;
3131
virtual result_t get(exlib::string name, v8::Local<v8::Function> updater, v8::Local<v8::Value>& retVal) = 0;
3232
virtual result_t set(exlib::string name, v8::Local<v8::Value> value) = 0;
33-
virtual result_t put(exlib::string name, v8::Local<v8::Value> value) = 0;
34-
virtual result_t put(v8::Local<v8::Object> map) = 0;
33+
virtual result_t set(v8::Local<v8::Object> map) = 0;
3534
virtual result_t remove(exlib::string name) = 0;
3635
virtual result_t isEmpty(bool& retVal) = 0;
3736

@@ -46,7 +45,6 @@ class LruCache_base : public object_base
4645
static void s_has(const v8::FunctionCallbackInfo<v8::Value>& args);
4746
static void s_get(const v8::FunctionCallbackInfo<v8::Value>& args);
4847
static void s_set(const v8::FunctionCallbackInfo<v8::Value>& args);
49-
static void s_put(const v8::FunctionCallbackInfo<v8::Value>& args);
5048
static void s_remove(const v8::FunctionCallbackInfo<v8::Value>& args);
5149
static void s_isEmpty(const v8::FunctionCallbackInfo<v8::Value>& args);
5250
};
@@ -63,7 +61,6 @@ namespace fibjs
6361
{"has", s_has, false},
6462
{"get", s_get, false},
6563
{"set", s_set, false},
66-
{"put", s_put, false},
6764
{"remove", s_remove, false},
6865
{"isEmpty", s_isEmpty, false}
6966
};
@@ -181,26 +178,11 @@ namespace fibjs
181178

182179
hr = pInst->set(v0, v1);
183180

184-
METHOD_VOID();
185-
}
186-
187-
inline void LruCache_base::s_put(const v8::FunctionCallbackInfo<v8::Value>& args)
188-
{
189-
METHOD_INSTANCE(LruCache_base);
190-
METHOD_ENTER();
191-
192-
METHOD_OVER(2, 2);
193-
194-
ARG(exlib::string, 0);
195-
ARG(v8::Local<v8::Value>, 1);
196-
197-
hr = pInst->put(v0, v1);
198-
199181
METHOD_OVER(1, 1);
200182

201183
ARG(v8::Local<v8::Object>, 0);
202184

203-
hr = pInst->put(v0);
185+
hr = pInst->set(v0);
204186

205187
METHOD_VOID();
206188
}

fibjs/include/ifs/LruCache.idl

+2-8
Original file line numberDiff line numberDiff line change
@@ -39,22 +39,16 @@ interface LruCache : object
3939
*/
4040
Value get(String name, Function updater);
4141

42-
/*! @brief 修改一个键值数据,键值不存在则不作任何操作
43-
@param name 指定要设定的键值
44-
@param value 指定要设定的数据
45-
*/
46-
set(String name, Value value);
47-
4842
/*! @brief 设定一个键值数据,键值不存在则插入一条新数据
4943
@param name 指定要设定的键值
5044
@param value 指定要设定的数据
5145
*/
52-
put(String name, Value value);
46+
set(String name, Value value);
5347

5448
/*! @brief 设定一个键值数据,键值不存在则插入新数据
5549
@param map 指定要设定的键值数据字典
5650
*/
57-
put(Object map);
51+
set(Object map);
5852

5953
/*! @brief 删除指定键值的全部值
6054
@param name 指定要删除的键值

fibjs/src/util/LruCache.cpp

+2-21
Original file line numberDiff line numberDiff line change
@@ -136,25 +136,6 @@ result_t LruCache::get(exlib::string name, v8::Local<v8::Function> updater,
136136
}
137137

138138
result_t LruCache::set(exlib::string name, v8::Local<v8::Value> value)
139-
{
140-
std::map<exlib::string, _linkedNode>::iterator find = m_datas.find(name);
141-
142-
if (find != m_datas.end())
143-
{
144-
update(find);
145-
update_time(find);
146-
147-
if (m_timeout > 0)
148-
find->second.insert.now();
149-
SetPrivate(name, value);
150-
}
151-
152-
cleanup();
153-
154-
return 0;
155-
}
156-
157-
result_t LruCache::put(exlib::string name, v8::Local<v8::Value> value)
158139
{
159140
static _linkedNode newNode;
160141
std::map<exlib::string, _linkedNode>::iterator find = m_datas.find(name);
@@ -195,9 +176,9 @@ inline result_t _map(LruCache *o, v8::Local<v8::Object> m,
195176
return 0;
196177
}
197178

198-
result_t LruCache::put(v8::Local<v8::Object> map)
179+
result_t LruCache::set(v8::Local<v8::Object> map)
199180
{
200-
return _map(this, map, &LruCache::put);
181+
return _map(this, map, &LruCache::set);
201182
}
202183

203184
result_t LruCache::remove(exlib::string name)

test/util_test.js

+15-23
Original file line numberDiff line numberDiff line change
@@ -829,13 +829,13 @@ describe('util', () => {
829829
deepEqual(c.toJSON(), {});
830830
});
831831

832-
it("put", () => {
833-
c.put("b", 100);
832+
it("set", () => {
833+
c.set("b", 100);
834834
deepEqual(c.toJSON(), {
835835
"b": 100
836836
});
837837

838-
c.put({
838+
c.set({
839839
"b": 200,
840840
"a": 100
841841
});
@@ -845,14 +845,6 @@ describe('util', () => {
845845
});
846846
});
847847

848-
it("set", () => {
849-
c.set("c", 100);
850-
deepEqual(c.toJSON(), {
851-
"a": 100,
852-
"b": 200
853-
});
854-
});
855-
856848
it("has", () => {
857849
assert.isTrue(c.has('a'));
858850
assert.isFalse(c.has('c'));
@@ -887,13 +879,13 @@ describe('util', () => {
887879
it("size", () => {
888880
assert.equal(c.size, 0);
889881

890-
c.put('a', 100);
882+
c.set('a', 100);
891883
assert.equal(c.size, 1);
892884

893-
c.put('b', 100);
894-
c.put('c', 200);
895-
c.put('d', 300);
896-
c.put('e', 400);
885+
c.set('b', 100);
886+
c.set('c', 200);
887+
c.set('d', 300);
888+
c.set('e', 400);
897889

898890
assert.equal(c.size, 3);
899891

@@ -907,12 +899,12 @@ describe('util', () => {
907899
it("timeout", () => {
908900
c = new util.LruCache(3, 200);
909901

910-
c.put('f', 100);
911-
c.put('d', 300);
912-
c.put('e', 400);
902+
c.set('f', 100);
903+
c.set('d', 300);
904+
c.set('e', 400);
913905

914906
coroutine.sleep(100);
915-
c.put('f', 500);
907+
c.set('f', 500);
916908
deepEqual(c.toJSON(), {
917909
"f": 500,
918910
"e": 400,
@@ -926,7 +918,7 @@ describe('util', () => {
926918
"d": 300
927919
});
928920

929-
c.put('e', 700);
921+
c.set('e', 700);
930922

931923
assert.equal(c.get('d'), 300);
932924
coroutine.sleep(101);
@@ -989,10 +981,10 @@ describe('util', () => {
989981
var no1 = os.memoryUsage().nativeObjects.objects;
990982

991983
var lc = new util.LruCache(1024);
992-
lc.put("test", lc);
984+
lc.set("test", lc);
993985
assert.equal(no1 + 1, os.memoryUsage().nativeObjects.objects);
994986

995-
lc.put("test1", new Buffer());
987+
lc.set("test1", new Buffer());
996988
assert.equal(no1 + 2, os.memoryUsage().nativeObjects.objects);
997989

998990
lc.remove("test1");

0 commit comments

Comments
 (0)