Eric House
49242f78cf
more script fixes; move jni code
2017-01-18 07:27:23 -08:00
Eric House
1a830fbff2
use clang instead of gcc for ndk builds
...
And make changes to C code to fix resulting warning. The .so file
basically works but is not thoroughly tested.
2016-10-25 06:09:40 -07:00
Eric House
929141f36d
fix compiler warning
2016-01-01 21:13:35 -08:00
Eric House
938756a34f
switch for loop to using C99-style variable declarations; no other change
2014-11-25 06:09:18 -08:00
Eric House
dee75f5a0a
don't ref dicts from dmgr_get()
2014-03-10 21:50:06 -07:00
Eric House
f601f2bf57
use dictmgr in java. This requires jni globals that live across boards being opened and that include a mempool dicts will be allocated out of. Seems to work, and to get ref counts as high as 6 or so before they drop down to one when all boards are closed. (The final is held by the dictmgr which won't give it up until the app itself is GC'd)
2014-03-10 19:14:59 -07:00
Eric House
a7c114e3f9
refcount dicts. Model "owns" its copy and so increments the refcount when gaining one and decrements the count on any being replaced (and on all on exit). This is setting up the real change, which is to let the java world wrap dicts in objects that hang onto them until they're destroyed, which should fix problems where dicts are referenced after they've been destroyed.
2014-03-08 20:57:27 -08:00
Eric House
339e784d7c
fix compile warnings
2014-02-10 18:23:03 -08:00
Eric House
b29dcb1d2c
add debug-only logging toward figuring out occasional bad-dict crash
2014-01-31 07:55:07 -08:00
Eric House
a522266ce4
add message checksumming for android too by making it part of util
...
(compiled out by default)
2013-07-10 08:05:47 -07:00
Eric House
541fc546ab
remove that bit from flags -- since we already do the right thing for it.
2013-04-20 19:46:35 -07:00
Eric House
e4f52c5678
add assert and comment explaining why non-utf-8-aware hack is safe.
2013-04-18 07:15:14 -07:00
Eric House
c8332a9665
load synonyms for specials correctly. So now Catalan works: wordlists
...
load, and search for "l-l" will find "L·L".
2013-04-14 15:45:23 -07:00
Eric House
cae631eeb0
handle synonyms in non-special tiles for Android: wordlists load and
...
display, and searching using lower case works. Specials (e.g. Catalan
changes) not yet supported.
2013-04-14 11:58:11 -07:00
Eric House
75398389b3
Merge branch 'android_branch' into android_dictdb
...
Conflicts:
xwords4/android/XWords4/jni/jniutlswrapper.c
2012-09-15 16:36:15 -07:00
Eric House
ee1df7eeb7
replace DeleteLocalRef calls with version that checks for NULL
2012-09-15 15:57:38 -07:00
Eric House
937bde6378
combine two jniutils methods into one
2012-09-15 15:21:31 -07:00
Eric House
aa974be567
Before figuring md5sum (via java callback added recently), use new
...
callback to see if there's already one in the DB. Required passing
context into jniutils getter, and passing name into jni dict
constructors that previously didn't need it.
2012-09-13 07:38:08 -07:00
Eric House
3e4384c2a8
when dict doesn't have built-in md5sum, or when in DEBUG code, call
...
back into java to get a sum. It's very slow for large dicts, but will
eventually be in a DB so only done once per dict that doesn't have it.
2012-09-13 05:39:44 -07:00
Eric House
077560bcd3
load md5sum if present
2012-09-08 09:42:23 -07:00
Eric House
4ffb4efb0c
silence compiler warning
2012-08-30 19:10:52 -07:00
Eric House
08aa9b66e8
also load new desc field in android client, and add jni call to retrieve it
2012-08-26 20:59:17 -07:00
Eric House
464696566d
get rid of NODE_CAN_4. Not change to post-compiled code
2012-08-01 20:29:15 -07:00
Eric House
edf13be4c8
I'm getting a crash on 2.1 in the simulator when calling
...
DeleteGlobalRef then NewGlobalRef on the same ref. So use a temp to
reverse the order. May fix reported crash as well.
2012-03-05 20:04:32 -08:00
Eric House
8590aae9b2
fix emacs compile-commands
2012-02-15 18:07:19 -08:00
Eric House
a2b5274b6c
on ICS CreateGlobalRef doesn't return the same value as is passed in.
...
So stop assuming it does! Fixes multiple crashes on ICS and need to
be ported to android_branch.
2012-02-05 19:12:09 -08:00
Andy2
e1e9a68d8f
fix ptr out-of-bounds test. Was failing an empty dict.
2011-11-21 18:04:20 -08:00
Andy2
44c5500ab0
don't crash when empty or corrupt dict file passed in.
2011-11-11 18:29:26 -08:00
Andy2
9ff4596667
fix compile warning by passing ptr to embedded super
2011-11-11 07:42:00 -08:00
Andy2
284bd2d0c4
turn on sanity checking of dicts in download directory, but from
...
DictLangCache rather than when the directory's walked initially. Need
to test still with bogus dict and make sure it's never shown.
2011-11-10 19:02:18 -08:00
Andy2
c237717de5
dict_getInfo returns false if the dict doesn't parse so can be used to
...
test validity of downloaded dict. Internally (in jni), add lots of
checks that format is correct and we don't run off end of ptr walking
truncated dict.
2011-10-23 14:21:57 -07:00
Andy2
2aa5447301
remove some logging
2011-09-08 19:03:08 -07:00
Andy2
8087153b73
log name of dict being set -- as an easy way to confirm that the right
...
dicts are getting passed to the jin.
2011-09-03 20:19:51 -07:00
Andy2
84e61f3b3f
remove no-op line
2011-08-22 18:43:42 -07:00
Andy2
c41af221b7
fix non-debug compile warning
2011-08-21 11:33:23 -07:00
Andy2
8adb925cca
only load and pass in dict as byte[] when path isn't available
...
(i.e. when it's a builtin), and use mmap in that case. Works! Still
need to try a speed test.
2011-08-08 20:27:42 -07:00
Andy2
755d3e5bb2
as first step in using mmap for dictionaries instead of passing byte
...
arrays into the jni, pass the full file paths in in addition to the
byte arrays. This isn't possible with the built-in dicts, but does
work for the downloaded ones (which are usually larger). This checkin
does the mmap and uses memcmp to verify that the bytes are the same as
passed in. Next step is to not pass the bytes when the path will do
and to actually use the mmap'd ptr.
2011-08-08 19:41:45 -07:00
Andy2
cd844a5bad
plug memory leak flushed out by auto-juggle code: null dict doesn't
...
mean the end of the list.
2011-06-29 18:28:55 -07:00
Andy2
bf67a88c5a
expect the array of dicts passed to include the game dict (as part of
...
changes to always have a game dict and to have player dicts only when
they're different.)
2011-04-25 20:16:38 -07:00
eehouse@eehouse.org
5a21aea2e5
Merge branch 'android_branch' of ssh://xwords.git.sourceforge.net/gitroot/xwords/xwords into android_branch
2011-04-13 06:58:58 -07:00
Eric House
baedbdff2c
remove logging
2011-04-12 22:17:56 -07:00
Andy2
002bb40a09
report counts/values using language rather than dictionary name. To
...
support that, pass lang name from java into jni.
2011-04-11 18:55:42 -07:00
Andy2
c6cd60deef
Save and restore per-player dicts; load games that have 'em correctly.
...
Robots default to BasEnglish dict and humans to CollegeEng. Add new
per-game default for robot dict. Still need to deal with language
changes and non-English case in general.
2011-04-11 06:42:17 -07:00
Andy2
977feada82
use a reference to a byte array in the java heap (locking down the
...
object) rather than allocating a new array in the C heap -- for the
DAWG data of a dictionary. This can use up to 5% of the java heap for
huge dictionaries, but I'm hoping it fixes a problem reported by a
user of the large German dictionary that seems to involve allocation.
If I'm reading correctly, as long as I stay within 16M (24M or more on
newer devices) I'm sure to get my memory in the java world while it's
less a sure thing in the JNI world (where in addition linux's
aggressive overallocation is used, meaning I'll fail when I try to
swap in memory on write rather than get back NULL from malloc.)
2011-01-31 18:56:20 -08:00
Andy2
53de4eab9b
correctly detect empty dict and set top ptr to null. Fixes crash
...
using empty dicts.
2010-12-17 18:54:27 -08:00
Andy2
ff9e03ef4b
read rather than just skipping word count
2010-12-06 07:30:28 -08:00
Andy2
e2bb50ef62
skip new header if present
2010-12-06 07:22:07 -08:00
Eric House
c4cdc24b78
initial changes to add a header to xwd format so that stuff like
...
number of words can be included. Changed to build dicts and linux to
open them. Android still needs to learn. Also, some of the tools in
dawg/ need to be fixed to read old-format (pre-utf8) .xwd files.
2010-12-05 19:33:10 -08:00
Andy2
cf6d8efb29
new jni method to get lang code. Takes a dict's raw bytes and builds
...
a dict object just to fetch the code, which is pretty inefficient, so
caching should be added later on the java side.
2010-08-25 06:33:16 -07:00
eehouse
5d31c18658
copy dict name into dict struct so e.g. Counts and Values works
2010-04-23 08:36:20 +00:00