mirror of
https://github.com/sqlite/sqlite.git
synced 2025-08-01 06:27:03 +03:00
Remove the unused xRename() method from the sqlite3_vfs object.
Add better documentation on the xCurrentTimeInt64() method. FossilOrigin-Name: 51ec0e5432dd6849b83a3d969a018482eb3bb083
This commit is contained in:
40
manifest
40
manifest
@ -1,5 +1,8 @@
|
|||||||
C Further\schanges\sto\stest\sscripts\sso\sthat\sthe\s"inmemory_journal"\spermutation\sworks.
|
-----BEGIN PGP SIGNED MESSAGE-----
|
||||||
D 2010-07-03T16:37:45
|
Hash: SHA1
|
||||||
|
|
||||||
|
C Remove\sthe\sunused\sxRename()\smethod\sfrom\sthe\ssqlite3_vfs\sobject.\nAdd\sbetter\sdocumentation\son\sthe\sxCurrentTimeInt64()\smethod.
|
||||||
|
D 2010-07-03T17:13:32
|
||||||
F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
|
F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
|
||||||
F Makefile.in a5cad1f8f3e021356bfcc6c77dc16f6f1952bbc3
|
F Makefile.in a5cad1f8f3e021356bfcc6c77dc16f6f1952bbc3
|
||||||
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
|
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
|
||||||
@ -154,8 +157,8 @@ F src/os.c c34882169b2f8ee0942c4f6aff9ee705e6110cdf
|
|||||||
F src/os.h d7775504a51e6e0d40315aa427b3e229ff9ff9ca
|
F src/os.h d7775504a51e6e0d40315aa427b3e229ff9ff9ca
|
||||||
F src/os_common.h a8f95b81eca8a1ab8593d23e94f8a35f35d4078f
|
F src/os_common.h a8f95b81eca8a1ab8593d23e94f8a35f35d4078f
|
||||||
F src/os_os2.c 665876d5eec7585226b0a1cf5e18098de2b2da19
|
F src/os_os2.c 665876d5eec7585226b0a1cf5e18098de2b2da19
|
||||||
F src/os_unix.c d7910391a4c9fa6898f7c9abbbb821d5d7edb78f
|
F src/os_unix.c c6112f0ae34f23ae5ca0189a685e084befbdcf26
|
||||||
F src/os_win.c dd4c6f238fe464e01dab5e4bc9158187ae305fe8
|
F src/os_win.c 883caa09d8cf7c4dfdef6eba6930466cb8a8275c
|
||||||
F src/pager.c e4470e43f0fefe5f81034efb706a2b1f4db5ca41
|
F src/pager.c e4470e43f0fefe5f81034efb706a2b1f4db5ca41
|
||||||
F src/pager.h 879fdde5a102d2f21a3135d6f647530b21c2796c
|
F src/pager.h 879fdde5a102d2f21a3135d6f647530b21c2796c
|
||||||
F src/parse.y ace5c7a125d9f2a410e431ee3209034105045f7e
|
F src/parse.y ace5c7a125d9f2a410e431ee3209034105045f7e
|
||||||
@ -170,7 +173,7 @@ F src/resolve.c 1c0f32b64f8e3f555fe1f732f9d6f501a7f05706
|
|||||||
F src/rowset.c 69afa95a97c524ba6faf3805e717b5b7ae85a697
|
F src/rowset.c 69afa95a97c524ba6faf3805e717b5b7ae85a697
|
||||||
F src/select.c 4903ff1bbd08b55cbce00ea43c645530de41b362
|
F src/select.c 4903ff1bbd08b55cbce00ea43c645530de41b362
|
||||||
F src/shell.c fd4ccdb37c3b68de0623eb938a649e0990710714
|
F src/shell.c fd4ccdb37c3b68de0623eb938a649e0990710714
|
||||||
F src/sqlite.h.in 301476d8556cbb1c5d4bc906370b2dafe4d98a44
|
F src/sqlite.h.in 26bcfc3084a2e4b4debba311c59ae434820c8e98
|
||||||
F src/sqlite3ext.h 69dfb8116af51b84a029cddb3b35062354270c89
|
F src/sqlite3ext.h 69dfb8116af51b84a029cddb3b35062354270c89
|
||||||
F src/sqliteInt.h 242987ebd2366ea36650a09cdab04a9163c62109
|
F src/sqliteInt.h 242987ebd2366ea36650a09cdab04a9163c62109
|
||||||
F src/sqliteLimit.h 196e2f83c3b444c4548fc1874f52f84fdbda40f3
|
F src/sqliteLimit.h 196e2f83c3b444c4548fc1874f52f84fdbda40f3
|
||||||
@ -182,7 +185,7 @@ F src/test2.c e3f564ab1e9fd0b47b0c9e23e7054e38bf0836cf
|
|||||||
F src/test3.c 4c21700c73a890a47fc685c1097bfb661346ac94
|
F src/test3.c 4c21700c73a890a47fc685c1097bfb661346ac94
|
||||||
F src/test4.c ad03bb987ddedce928f4258c1e7fa4109a73497d
|
F src/test4.c ad03bb987ddedce928f4258c1e7fa4109a73497d
|
||||||
F src/test5.c cc55900118fa4add8ec9cf69fc4225a4662f76b1
|
F src/test5.c cc55900118fa4add8ec9cf69fc4225a4662f76b1
|
||||||
F src/test6.c 44e0a99e8bb43c924ff6cdfb1f6e6de10450b7fe
|
F src/test6.c e7f71216e4da6fdafbc571c34401d2ef91f58bb7
|
||||||
F src/test7.c 3f2d63e4ccf97f8c2cf1a7fa0a3c8e2e2a354e6e
|
F src/test7.c 3f2d63e4ccf97f8c2cf1a7fa0a3c8e2e2a354e6e
|
||||||
F src/test8.c f959db9a22d882013b64c92753fa793b2ce3bdea
|
F src/test8.c f959db9a22d882013b64c92753fa793b2ce3bdea
|
||||||
F src/test9.c bea1e8cf52aa93695487badedd6e1886c321ea60
|
F src/test9.c bea1e8cf52aa93695487badedd6e1886c321ea60
|
||||||
@ -192,24 +195,24 @@ F src/test_backup.c c129c91127e9b46e335715ae2e75756e25ba27de
|
|||||||
F src/test_btree.c 47cd771250f09cdc6e12dda5bc71bc0b3abc96e2
|
F src/test_btree.c 47cd771250f09cdc6e12dda5bc71bc0b3abc96e2
|
||||||
F src/test_config.c 6210f501d358bde619ae761f06f123529c6ba24f
|
F src/test_config.c 6210f501d358bde619ae761f06f123529c6ba24f
|
||||||
F src/test_demovfs.c da81a5f7785bb352bda7911c332a983ec4f17f27
|
F src/test_demovfs.c da81a5f7785bb352bda7911c332a983ec4f17f27
|
||||||
F src/test_devsym.c 41e6b76f74f292cbb581020dc70b72e7c2813d68
|
F src/test_devsym.c 5a99203fb7ff43047d7e493d1b159585983d4ea6
|
||||||
F src/test_func.c 13b582345fb1185a93e46c53310fae8547dcce20
|
F src/test_func.c 13b582345fb1185a93e46c53310fae8547dcce20
|
||||||
F src/test_hexio.c 1237f000ec7a491009b1233f5c626ea71bce1ea2
|
F src/test_hexio.c 1237f000ec7a491009b1233f5c626ea71bce1ea2
|
||||||
F src/test_init.c 5d624ffd0409d424cf9adbfe1f056b200270077c
|
F src/test_init.c 5d624ffd0409d424cf9adbfe1f056b200270077c
|
||||||
F src/test_intarray.c d879bbf8e4ce085ab966d1f3c896a7c8b4f5fc99
|
F src/test_intarray.c d879bbf8e4ce085ab966d1f3c896a7c8b4f5fc99
|
||||||
F src/test_intarray.h 489edb9068bb926583445cb02589344961054207
|
F src/test_intarray.h 489edb9068bb926583445cb02589344961054207
|
||||||
F src/test_journal.c 044c1a53ec4dd6f0dde66727b154cd099f5f34d1
|
F src/test_journal.c 424a334cdfdc8a6f975abe3641440147bded3185
|
||||||
F src/test_loadext.c df586c27176e3c2cb2e099c78da67bf14379a56e
|
F src/test_loadext.c df586c27176e3c2cb2e099c78da67bf14379a56e
|
||||||
F src/test_malloc.c 4ab85f2b8ae3a237f4e6557b0a641181a19ffab1
|
F src/test_malloc.c 4ab85f2b8ae3a237f4e6557b0a641181a19ffab1
|
||||||
F src/test_mutex.c ce06b59aca168cd8c520b77159a24352a7469bd3
|
F src/test_mutex.c ce06b59aca168cd8c520b77159a24352a7469bd3
|
||||||
F src/test_onefile.c fb979cecd57217fd49023ed5468d8c93429c4fbe
|
F src/test_onefile.c 701553cecc466c13fbebdb27cc7022839512f7bd
|
||||||
F src/test_osinst.c f1e4194860aa7e2f2ed7375c6b1f23a4290dd98c
|
F src/test_osinst.c 700a39f4b7d3959fb65b1a97a5503a9b6d952c6b
|
||||||
F src/test_pcache.c 7bf828972ac0d2403f5cfa4cd14da41f8ebe73d8
|
F src/test_pcache.c 7bf828972ac0d2403f5cfa4cd14da41f8ebe73d8
|
||||||
F src/test_schema.c 8c06ef9ddb240c7a0fcd31bc221a6a2aade58bf0
|
F src/test_schema.c 8c06ef9ddb240c7a0fcd31bc221a6a2aade58bf0
|
||||||
F src/test_server.c bbba05c144b5fc4b52ff650a4328027b3fa5fcc6
|
F src/test_server.c bbba05c144b5fc4b52ff650a4328027b3fa5fcc6
|
||||||
F src/test_tclvar.c f4dc67d5f780707210d6bb0eb6016a431c04c7fa
|
F src/test_tclvar.c f4dc67d5f780707210d6bb0eb6016a431c04c7fa
|
||||||
F src/test_thread.c aa9919c885a1fe53eafc73492f0898ee6c0a0726
|
F src/test_thread.c aa9919c885a1fe53eafc73492f0898ee6c0a0726
|
||||||
F src/test_vfs.c f7e4d92be80bcc885123f0b1733672c71d1708ac
|
F src/test_vfs.c bea0f0bdee9b033a62d057bf3451c25760b0414d
|
||||||
F src/test_wsd.c 41cadfd9d97fe8e3e4e44f61a4a8ccd6f7ca8fe9
|
F src/test_wsd.c 41cadfd9d97fe8e3e4e44f61a4a8ccd6f7ca8fe9
|
||||||
F src/tokenize.c 25ceb0f0a746ea1d0f9553787f3f0a56853cfaeb
|
F src/tokenize.c 25ceb0f0a746ea1d0f9553787f3f0a56853cfaeb
|
||||||
F src/trigger.c 67e95c76d625b92d43409ace771c8e0d02a09ac2
|
F src/trigger.c 67e95c76d625b92d43409ace771c8e0d02a09ac2
|
||||||
@ -830,7 +833,14 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
|
|||||||
F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
|
F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
|
||||||
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
|
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
|
||||||
F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
|
F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
|
||||||
P 3b20ad03be55613d922d81aec5313327bf4098b9
|
P 50f2f7dfd64f610982525fd7a0dd7c1ade67bebb
|
||||||
R c5dbcd1471973b071f8e3d38ae4f1982
|
R 477818314ab9a6d00010b5c5e4489546
|
||||||
U dan
|
U drh
|
||||||
Z a22d0cca6dbea15a214512ee92ecd989
|
Z cab31017dffc51bf4ac4822d04e694ee
|
||||||
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
Version: GnuPG v1.4.6 (GNU/Linux)
|
||||||
|
|
||||||
|
iD8DBQFML2+/oxKgR168RlERArECAJ4of40v91fn+xAS8loTcFI9dK2gmwCeO1af
|
||||||
|
zthyzL3fn2DSmXLpH61iQHM=
|
||||||
|
=pc51
|
||||||
|
-----END PGP SIGNATURE-----
|
||||||
|
@ -1 +1 @@
|
|||||||
50f2f7dfd64f610982525fd7a0dd7c1ade67bebb
|
51ec0e5432dd6849b83a3d969a018482eb3bb083
|
@ -6084,7 +6084,6 @@ int sqlite3_os_init(void){
|
|||||||
unixSleep, /* xSleep */ \
|
unixSleep, /* xSleep */ \
|
||||||
unixCurrentTime, /* xCurrentTime */ \
|
unixCurrentTime, /* xCurrentTime */ \
|
||||||
unixGetLastError, /* xGetLastError */ \
|
unixGetLastError, /* xGetLastError */ \
|
||||||
0, /* xRename */ \
|
|
||||||
unixCurrentTimeInt64, /* xCurrentTimeInt64 */ \
|
unixCurrentTimeInt64, /* xCurrentTimeInt64 */ \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2478,7 +2478,6 @@ int sqlite3_os_init(void){
|
|||||||
winSleep, /* xSleep */
|
winSleep, /* xSleep */
|
||||||
winCurrentTime, /* xCurrentTime */
|
winCurrentTime, /* xCurrentTime */
|
||||||
winGetLastError, /* xGetLastError */
|
winGetLastError, /* xGetLastError */
|
||||||
0, /* xRename */
|
|
||||||
winCurrentTimeInt64, /* xCurrentTimeInt64 */
|
winCurrentTimeInt64, /* xCurrentTimeInt64 */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -827,16 +827,23 @@ typedef struct sqlite3_mutex sqlite3_mutex;
|
|||||||
** handled as a fatal error by SQLite, vfs implementations should endeavor
|
** handled as a fatal error by SQLite, vfs implementations should endeavor
|
||||||
** to prevent this by setting mxPathname to a sufficiently large value.
|
** to prevent this by setting mxPathname to a sufficiently large value.
|
||||||
**
|
**
|
||||||
** The xRandomness(), xSleep(), and xCurrentTime() interfaces
|
** The xRandomness(), xSleep(), xCurrentTime(), and xCurrentTimeInt64()
|
||||||
** are not strictly a part of the filesystem, but they are
|
** interfaces are not strictly a part of the filesystem, but they are
|
||||||
** included in the VFS structure for completeness.
|
** included in the VFS structure for completeness.
|
||||||
** The xRandomness() function attempts to return nBytes bytes
|
** The xRandomness() function attempts to return nBytes bytes
|
||||||
** of good-quality randomness into zOut. The return value is
|
** of good-quality randomness into zOut. The return value is
|
||||||
** the actual number of bytes of randomness obtained.
|
** the actual number of bytes of randomness obtained.
|
||||||
** The xSleep() method causes the calling thread to sleep for at
|
** The xSleep() method causes the calling thread to sleep for at
|
||||||
** least the number of microseconds given. The xCurrentTime()
|
** least the number of microseconds given. The xCurrentTime()
|
||||||
** method returns a Julian Day Number for the current date and time.
|
** method returns a Julian Day Number for the current date and time as
|
||||||
**
|
** a floating point value.
|
||||||
|
** The xCurrentTimeInt64() method returns, as an integer, the Julian
|
||||||
|
** Day Number multipled by 86400000 (the number of milliseconds in
|
||||||
|
** a 24-hour day).
|
||||||
|
** ^SQLite will use the xCurrentTimeInt64() method to get the current
|
||||||
|
** date and time if that method is available (if iVersion is 2 or
|
||||||
|
** greater and the function pointer is not NULL) and will fall back
|
||||||
|
** to xCurrentTime() if xCurrentTimeInt64() is unavailable.
|
||||||
*/
|
*/
|
||||||
typedef struct sqlite3_vfs sqlite3_vfs;
|
typedef struct sqlite3_vfs sqlite3_vfs;
|
||||||
struct sqlite3_vfs {
|
struct sqlite3_vfs {
|
||||||
@ -863,7 +870,6 @@ struct sqlite3_vfs {
|
|||||||
** The methods above are in version 1 of the sqlite_vfs object
|
** The methods above are in version 1 of the sqlite_vfs object
|
||||||
** definition. Those that follow are added in version 2 or later
|
** definition. Those that follow are added in version 2 or later
|
||||||
*/
|
*/
|
||||||
int (*xRename)(sqlite3_vfs*, const char *zOld, const char *zNew, int dirSync);
|
|
||||||
int (*xCurrentTimeInt64)(sqlite3_vfs*, sqlite3_int64*);
|
int (*xCurrentTimeInt64)(sqlite3_vfs*, sqlite3_int64*);
|
||||||
/*
|
/*
|
||||||
** The methods above are in versions 1 and 2 of the sqlite_vfs object.
|
** The methods above are in versions 1 and 2 of the sqlite_vfs object.
|
||||||
|
@ -813,7 +813,6 @@ static int crashEnableCmd(
|
|||||||
cfSleep, /* xSleep */
|
cfSleep, /* xSleep */
|
||||||
cfCurrentTime, /* xCurrentTime */
|
cfCurrentTime, /* xCurrentTime */
|
||||||
0, /* xGetlastError */
|
0, /* xGetlastError */
|
||||||
0, /* xRename */
|
|
||||||
0, /* xCurrentTimeInt64 */
|
0, /* xCurrentTimeInt64 */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -99,7 +99,6 @@ static sqlite3_vfs devsym_vfs = {
|
|||||||
devsymSleep, /* xSleep */
|
devsymSleep, /* xSleep */
|
||||||
devsymCurrentTime, /* xCurrentTime */
|
devsymCurrentTime, /* xCurrentTime */
|
||||||
0, /* xGetLastError */
|
0, /* xGetLastError */
|
||||||
0, /* xRename */
|
|
||||||
0 /* xCurrentTimeInt64 */
|
0 /* xCurrentTimeInt64 */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -182,7 +182,6 @@ static sqlite3_vfs jt_vfs = {
|
|||||||
jtSleep, /* xSleep */
|
jtSleep, /* xSleep */
|
||||||
jtCurrentTime, /* xCurrentTime */
|
jtCurrentTime, /* xCurrentTime */
|
||||||
0, /* xGetLastError */
|
0, /* xGetLastError */
|
||||||
0, /* xRename */
|
|
||||||
jtCurrentTimeInt64 /* xCurrentTimeInt64 */
|
jtCurrentTimeInt64 /* xCurrentTimeInt64 */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -199,7 +199,6 @@ static fs_vfs_t fs_vfs = {
|
|||||||
fsRandomness, /* xRandomness */
|
fsRandomness, /* xRandomness */
|
||||||
fsSleep, /* xSleep */
|
fsSleep, /* xSleep */
|
||||||
fsCurrentTime, /* xCurrentTime */
|
fsCurrentTime, /* xCurrentTime */
|
||||||
0, /* xRename */
|
|
||||||
0 /* xCurrentTimeInt64 */
|
0 /* xCurrentTimeInt64 */
|
||||||
},
|
},
|
||||||
0, /* pFileList */
|
0, /* pFileList */
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
** overhead introduced into the application by logging.
|
** overhead introduced into the application by logging.
|
||||||
**
|
**
|
||||||
** All calls on sqlite3_file objects except xFileControl() are logged.
|
** All calls on sqlite3_file objects except xFileControl() are logged.
|
||||||
** Additionally, calls to the xAccess(), xOpen(), xDelete() and xRename()
|
** Additionally, calls to the xAccess(), xOpen(), and xDelete()
|
||||||
** methods are logged. The other sqlite3_vfs object methods (xDlXXX,
|
** methods are logged. The other sqlite3_vfs object methods (xDlXXX,
|
||||||
** xRandomness, xSleep, xCurrentTime, xGetLastError and xCurrentTimeInt64)
|
** xRandomness, xSleep, xCurrentTime, xGetLastError and xCurrentTimeInt64)
|
||||||
** are not logged.
|
** are not logged.
|
||||||
@ -171,7 +171,6 @@ static int vfslogSleep(sqlite3_vfs*, int microseconds);
|
|||||||
static int vfslogCurrentTime(sqlite3_vfs*, double*);
|
static int vfslogCurrentTime(sqlite3_vfs*, double*);
|
||||||
|
|
||||||
static int vfslogGetLastError(sqlite3_vfs*, int, char *);
|
static int vfslogGetLastError(sqlite3_vfs*, int, char *);
|
||||||
static int vfslogRename(sqlite3_vfs*, const char *, const char *, int);
|
|
||||||
static int vfslogCurrentTimeInt64(sqlite3_vfs*, sqlite3_int64*);
|
static int vfslogCurrentTimeInt64(sqlite3_vfs*, sqlite3_int64*);
|
||||||
|
|
||||||
static sqlite3_vfs vfslog_vfs = {
|
static sqlite3_vfs vfslog_vfs = {
|
||||||
@ -193,7 +192,6 @@ static sqlite3_vfs vfslog_vfs = {
|
|||||||
vfslogSleep, /* xSleep */
|
vfslogSleep, /* xSleep */
|
||||||
vfslogCurrentTime, /* xCurrentTime */
|
vfslogCurrentTime, /* xCurrentTime */
|
||||||
vfslogGetLastError, /* xGetLastError */
|
vfslogGetLastError, /* xGetLastError */
|
||||||
vfslogRename, /* xRename */
|
|
||||||
vfslogCurrentTimeInt64 /* xCurrentTime */
|
vfslogCurrentTimeInt64 /* xCurrentTime */
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -616,9 +614,6 @@ static int vfslogCurrentTime(sqlite3_vfs *pVfs, double *pTimeOut){
|
|||||||
static int vfslogGetLastError(sqlite3_vfs *pVfs, int a, char *b){
|
static int vfslogGetLastError(sqlite3_vfs *pVfs, int a, char *b){
|
||||||
return REALVFS(pVfs)->xGetLastError(REALVFS(pVfs), a, b);
|
return REALVFS(pVfs)->xGetLastError(REALVFS(pVfs), a, b);
|
||||||
}
|
}
|
||||||
static int vfslogRename(sqlite3_vfs *pVfs, const char *a, const char *b, int c){
|
|
||||||
return REALVFS(pVfs)->xRename(REALVFS(pVfs), a, b, c);
|
|
||||||
}
|
|
||||||
static int vfslogCurrentTimeInt64(sqlite3_vfs *pVfs, sqlite3_int64 *p){
|
static int vfslogCurrentTimeInt64(sqlite3_vfs *pVfs, sqlite3_int64 *p){
|
||||||
return REALVFS(pVfs)->xCurrentTimeInt64(REALVFS(pVfs), p);
|
return REALVFS(pVfs)->xCurrentTimeInt64(REALVFS(pVfs), p);
|
||||||
}
|
}
|
||||||
|
@ -1296,8 +1296,7 @@ static int testvfs_cmd(
|
|||||||
tvfsSleep, /* xSleep */
|
tvfsSleep, /* xSleep */
|
||||||
tvfsCurrentTime, /* xCurrentTime */
|
tvfsCurrentTime, /* xCurrentTime */
|
||||||
0, /* xGetLastError */
|
0, /* xGetLastError */
|
||||||
0,
|
0, /* xCurrentTimeInt64 */
|
||||||
0,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
Testvfs *p; /* New object */
|
Testvfs *p; /* New object */
|
||||||
|
Reference in New Issue
Block a user