Commit Graph

928 Commits

Author SHA1 Message Date
Ari Lazier 2f69728827 pr fixes 2016-05-16 11:29:58 -07:00
Scott Kyle 7a26d192ba Merge pull request #427 from realm/sk-object-inheritance
Fix ES6 class inheritance of Realm.Object with Babel
2016-05-16 11:17:45 -07:00
Ari Lazier df716d3da1 fix for android compilation 2016-05-13 18:45:42 -07:00
Ari Lazier 3d0af084bb fix for android compilation 2016-05-13 18:45:42 -07:00
Ari Lazier e438d8b586 update object store 2016-05-13 18:04:05 -07:00
Ari Lazier 0c1fdaadda update object store 2016-05-13 18:04:05 -07:00
Scott Kyle 5bc72ab2cf Make Date testing work for Node 2016-05-13 16:30:57 -07:00
Scott Kyle 0b1a686f60 Add platform.cpp file for Node 2016-05-13 16:26:31 -07:00
Ari Lazier e32df4e815 fix copy bundled files for ios 2016-05-13 15:44:25 -07:00
Ari Lazier 125dd0d1c7 merge it 2016-05-13 15:41:10 -07:00
Ari Lazier d1dcd4ff3f add additional tests 2016-05-13 15:29:59 -07:00
Scott Kyle 0250234a30 Cleanup Android platform.cpp 2016-05-13 15:25:18 -07:00
Ari Lazier e7b341dfdb merge latest from master 2016-05-13 15:05:19 -07:00
Ari Lazier 4334d55767 fix for android - create notifier after opening realm 2016-05-13 14:55:36 -07:00
Ari Lazier 78f74211b1 fix for android - create notifier after opening realm 2016-05-13 14:55:36 -07:00
Ari Lazier 80904e36e1 hopeful fix for android test 2016-05-13 14:15:34 -07:00
Ari Lazier 0ce3cdf81d hopeful fix for android test 2016-05-13 14:15:34 -07:00
Scott Kyle 323583ed67 Merge pull request #417 from realm/sk-node-6
Fix issues in Node 6
2016-05-12 12:39:31 -07:00
Ari Lazier 299c82b7d2 pr feedback 2016-05-12 11:42:22 -07:00
Thomas Goyne e6d09b513e Fix an assertion failure in IndexSet::do_add() following a table clear
We don't track insertions and deletions for tables that are merely linked to by
tables actually being observed (for performance reasons, since we don't need
that information), but the check for that was missing in one place. This would
be merely a slowdown rather than a crash, but deletions.add_shifted() can
overflow size_t if the passed-in index represents a newly inserted row and the
check for that didn't work due to not tracking insertions for the table.

The only remotely realistic way to actually have size_t overflow is to have
previously cleared the table (the table clear instruction does not include the
old size of the table, so it just marks {0, SIZE_T_MAX} as deleted).

Fixes #3537.
2016-05-11 16:08:30 -07:00
Thomas Goyne 2bcf42904a Fix some typos in comments 2016-05-11 16:08:30 -07:00
Thomas Goyne b42bf25c99 Fix compilation with latest core 2016-05-11 16:08:30 -07:00
Thomas Goyne 8d9e5db092 Give a variable a less terrible name and add a comment 2016-05-11 16:08:30 -07:00
Mark Rowe ef1c6ddc63 Add support for fine-grained notifications from backlink TVs 2016-05-11 16:08:30 -07:00
Thomas Goyne 03108713ee Make PropertyType an enum class 2016-05-11 16:08:30 -07:00
Thomas Goyne 4cf5d5db4c Report modification paths as pre-delete/inserts as required for UITableView 2016-05-11 16:08:30 -07:00
Thomas Goyne d8a69b87dc Improve change calculation performance for nontrivial object graphs
Skip doing any checking at all if none of the tables reachable from the root
table have been modified (which can happen if the table version was bumped due
to insertions, unrelated backlinks, or unlinked-to rows being deleted in linked
tables).

Add cycle checking rather than relying on the max depth to handle it, as the
worst case was O(N^16) if the cycle involved a LinkList of size N.

Track which rows have been confirmed to have not been modified.

Cache the information about the links for each of the relevant tables as
checking the table schema can get somewhat expensive.
2016-05-11 16:08:30 -07:00
Thomas Goyne f9364b50a4 Return the correct iterator from ChunkedVector::erase()
When a chunk is removed entirely it should return an iterator to the first
element in the next chunk, not the last.
2016-05-11 16:08:30 -07:00
Thomas Goyne 4df552ba2d Clean up old move info even when the row being deleted is the last one 2016-05-11 16:08:30 -07:00
Thomas Goyne 3218740fd9 Fix the check for a deleted LV in ListNotifier::add_required_change_info() 2016-05-11 16:08:30 -07:00
Thomas Goyne 632d757014 Always deliver results to the correct SharedGroup
If there are multiple Realm instances for a single file on a single thread due
to disabling caching we need to actually deliver the results to the appropriate
SharedGroup for each notifier rather than delivering them all to the first one.
2016-05-11 16:08:30 -07:00
Thomas Goyne 8879212111 Fix assertion failure when a notifier is removed before it runs 2016-05-11 16:08:30 -07:00
Thomas Goyne eee6e55eb0 Refactor SortedMoveCalculator and add more of an explanation 2016-05-11 16:08:30 -07:00
Thomas Goyne 95900f5e17 Make more member functions in CollectionNotifier pure virtual 2016-05-11 16:08:30 -07:00
Thomas Goyne 9883944df4 Pull CollectionChangeBuilder into its own file 2016-05-11 16:08:30 -07:00
Thomas Goyne 66666a75b0 Iterate backwards to pick the last valid list in select_link_list 2016-05-11 16:08:30 -07:00
Thomas Goyne 23c16f8e67 Use aggregate initialization for the base class in CollectionChangeBuilder 2016-05-11 16:08:30 -07:00
Thomas Goyne c0350b9001 Rename CollectionChangeIndices to CollectionChangeSet 2016-05-11 16:08:30 -07:00
Thomas Goyne 953e1b15a8 Rename BackgroundCollection to CollectionNotifier 2016-05-11 16:08:30 -07:00
Thomas Goyne fe5564f40e Change all of the mentions of 'query' in NotificationToken to 'notifier' 2016-05-11 16:08:30 -07:00
Thomas Goyne 31c3982bff Fix some typos 2016-05-11 16:08:30 -07:00
Thomas Goyne e75ff49421 Fix check for the target results being invalid in ResultsNotifier::deliver()
m_target_results is no longer actually set to null when the notifier is
unregistered, so check the thing which is (i.e. m_realm).
2016-05-11 16:08:30 -07:00
Thomas Goyne 238e9e3b6b Fix tracking of which tables need change info with multiple source notifier versions 2016-05-11 16:08:30 -07:00
Thomas Goyne ea3a2f4711 Refactor the incremental change tracking for mixed source versions 2016-05-11 16:08:30 -07:00
Thomas Goyne 69cefd052e Deliver the new TableView even if it did not change
Even if the new TV has the same rows as the old one, we need to hand it over to
the destination thread to bump the outside version of the destination thread's
TV to avoid rerunning the query there.
2016-05-11 16:08:30 -07:00
Thomas Goyne 83b4d8ded2 Make RealmCoordinator::run_async_notifiers a bit less gross 2016-05-11 16:08:30 -07:00
Thomas Goyne 32b05314f5 Remove extraneous semicolons 2016-05-11 16:08:30 -07:00
Thomas Goyne 2ce0e2e37f Remove transaction log handlers for old pk functions 2016-05-11 16:08:30 -07:00
Thomas Goyne c12d87427a Clean up includes and forward declarations a bit 2016-05-11 16:08:30 -07:00
Thomas Goyne 155d949793 Only track inserts and deletes for tables being queried directly
# Conflicts:
#	src/collection_notifications.cpp
#	src/collection_notifications.hpp
2016-05-11 16:08:30 -07:00
Thomas Goyne a86265f4dc Move CollectionChangeBuilder to background_collection.hpp 2016-05-11 16:08:30 -07:00
Thomas Goyne bc78c02e9d Fix quadratic runtime of move_last_over() parsing 2016-05-11 16:08:30 -07:00
Thomas Goyne 2e80716629 Improve performance of move mapping when there are a lot of deletions 2016-05-11 16:08:30 -07:00
Thomas Goyne ae9516dbb7 Improve performance for large numbers of deletions 2016-05-11 16:08:30 -07:00
Thomas Goyne 8623aa6c6b Actually unregister List notifiers when the List is destroyed 2016-05-11 16:08:30 -07:00
Thomas Goyne 7a75e2bae2 Use a better data structure for IndexSet
Switch to a chunked vector-of-vectors which makes mid-insertions on large sets
much faster, and cache the begin/end/count for each chunk to make lookups much
more cache-friendly.
2016-05-11 16:08:30 -07:00
Thomas Goyne f600487769 Speed up CollectionChangeBuilder::move_over() 2016-05-11 16:08:30 -07:00
Thomas Goyne f051337cd3 Rename erase_and_unshift() to erase_or_unshift() 2016-05-11 16:08:30 -07:00
Thomas Goyne dd336120b2 Fix compilation with GCC 4.9 2016-05-11 16:08:30 -07:00
Thomas Goyne 784c34e052 Add property.hpp to HEADERS 2016-05-11 16:08:30 -07:00
Thomas Goyne bab5540cf6 Fix incorrect results when the second-to-last row is deleted 2016-05-11 16:08:30 -07:00
Thomas Goyne 20d9da973b Make List and Results notifications more consistent
Deliver the initial results for both of them and include the changeset
in the initial delivery for both, rather than having them behave weirdly
differently.
2016-05-11 16:08:30 -07:00
Thomas Goyne 7a74a22558 Fix tracking of modifications after linkview moves 2016-05-11 16:08:30 -07:00
Thomas Goyne a0b16305c9 Fix dangling pointers to a reallocated vector when there are multiple source versions for handover 2016-05-11 16:08:30 -07:00
Thomas Goyne ef632804ef Clean up stale moves for linkviews even without a merge 2016-05-11 16:08:30 -07:00
Thomas Goyne feed7c3479 Update moves when there is another move to exactly the previous move target 2016-05-11 16:08:30 -07:00
Thomas Goyne 0a3158ce74 Fix marking deletions when chaining move_last_over() 2016-05-11 16:08:30 -07:00
Thomas Goyne 1289c4806c Fix handling of move_last_over() on the second-to-last row 2016-05-11 16:08:30 -07:00
Thomas Goyne edc0d1fc4a Improve and expand the changeset calculation tests 2016-05-11 16:08:30 -07:00
Thomas Goyne dc7ddfae84 Treat Results from LinkViews as if they were sorted for diff calculations 2016-05-11 16:08:30 -07:00
Thomas Goyne 71911ee221 Add support for wrapping a LinkView in a Results 2016-05-11 16:08:30 -07:00
Thomas Goyne 1b48c71932 Speed up transaction log parsing for queries 2016-05-11 16:08:30 -07:00
Thomas Goyne 5d5f504543 Greatly speed up sorted changeset calculations 2016-05-11 16:08:30 -07:00
Thomas Goyne 88a3b6ed00 Speed up the IndexSet combining operations 2016-05-11 16:08:30 -07:00
Thomas Goyne fdeb80f970 Speed up IndexSet::count() a bit 2016-05-11 16:08:30 -07:00
Thomas Goyne 059f907a4a Make sorted move calculations a bit less gross 2016-05-11 16:08:30 -07:00
Thomas Goyne 1a8a56d10a Use binary search in IndexSet::find() 2016-05-11 16:08:30 -07:00
Thomas Goyne f1f0327146 Speed up unsorted changeset calculations by eliminating most calls to count() 2016-05-11 16:08:30 -07:00
Thomas Goyne c6def6b814 Don't parse the transaction logs on the background thread if no change info is needed 2016-05-11 16:08:30 -07:00
Thomas Goyne 9503a3fc03 Always send an empty changeset to the first call of a Results notification callback 2016-05-11 16:08:30 -07:00
Thomas Goyne b5bd00005c Skip collecting change information when it isn't needed 2016-05-11 16:08:30 -07:00
Thomas Goyne e65ad4d413 Discard moves which are turned into no-ops when merging 2016-05-11 16:08:30 -07:00
Thomas Goyne cfb9f0635c Fix calculation of moves for unsorted queries 2016-05-11 16:08:30 -07:00
Thomas Goyne d22c65f28a Partially split out the code for calculating changesets from the struct for delivering them 2016-05-11 16:08:30 -07:00
Thomas Goyne a4298dd92c Remove an unused function 2016-05-11 16:08:30 -07:00
Thomas Goyne b920f62ca5 Comment and clean up the Notifiers/BackgroundCollection 2016-05-11 16:08:30 -07:00
Thomas Goyne 4ec1090c05 Rename AsyncQuery to ResultsNotifier 2016-05-11 16:08:30 -07:00
Thomas Goyne 424f4e829f Prioritize modified rows when calculating changes for sorted results 2016-05-11 16:08:30 -07:00
Thomas Goyne a428f813d5 Skip calling callbacks if two commits cancel each other out when merged 2016-05-11 16:08:30 -07:00
Thomas Goyne a16cd7d42d Add async_query.hpp to the project 2016-05-11 16:08:30 -07:00
Thomas Goyne 9a0ec0eb28 Actually report deletions for table clears 2016-05-11 16:08:30 -07:00
Thomas Goyne e25e4c2dcd Rework handling of mixed move_last_over() and modifications to actually work 2016-05-11 16:08:30 -07:00
Thomas Goyne d46f2c65ba Refactor the transaction log parsers to eliminate some duplication 2016-05-11 16:08:30 -07:00
Thomas Goyne f4aaa7c9de Add fine-grained notifications for Results 2016-05-11 16:08:30 -07:00
Thomas Goyne 6609bcaed7 Add fine-grained notifications for List 2016-05-11 16:08:30 -07:00
Thomas Goyne 6380335fc3 Extract out the parts of AsyncQuery not directly related to query running 2016-05-11 16:08:30 -07:00
Nabil Hachicha 895c6a3056 Copying embedded Realm files using AssetManager from JNI 2016-05-11 19:56:59 +01:00
Thomas Goyne deea1e8f5f Merge pull request #67 from realm/tg/tvos-ech
Watch changes for tvOS without named pipes
2016-05-11 09:58:16 -07:00
Thomas Goyne 8d115ad42d Merge pull request #68 from realm/tg/schema-validation-error
Split SchemaValidationException into SchemaValidationException and SchemaMismatchException
2016-05-11 09:58:06 -07:00
Ari Lazier cf4fd74f52 pr fixes for build script 2016-05-10 14:01:27 -07:00
Thomas Goyne c07fb9c963 Merge pull request #64 from realm/tg/leak
Fix the initial ref count for WeakRealmNotifier
2016-05-10 11:55:06 -07:00
kishikawa katsumi 23d9c1c6e8 Split SchemaValidationException into SchemaValidationException and SchemaMismatchException
Because SchemaValidationException is thrown both case that a schema definition is incorrect and case that two schema definitions are mismatched.
In the former case, the migration does not solve the problem. But the exception message shows "Migration is required..."

Therefore the latter as MismatchException, to distinguish between the two cases.
2016-05-10 11:53:58 -07:00
kishikawa katsumi 8e24d4331f Watch changes for tvOS without named pipes 2016-05-10 11:47:37 -07:00
Scott Kyle 26d2c169a9 Support ES6 class inheritance from Realm.Object
Unfortunately, this was broken because our native Realm.Object constructor was not presenting itself as a function in JS. This fixes that and adds tests.
2016-05-09 16:49:05 -07:00
Scott Kyle 651449108e Improve usage of js::PropertyAttributes 2016-05-09 16:08:04 -07:00
Ari Lazier a960d88893 add project for building/debugging node 2016-05-09 15:16:37 -07:00
Ari Lazier e71fb3766b convert old date columns 2016-05-09 13:12:48 -07:00
Ari Lazier 9c7b01091f convert old date columns 2016-05-09 13:12:48 -07:00
Scott Kyle 40855f789c Prevent accidental leak of RealmDelegate
If a binding context already exists, we make sure it's a js::RealmDelegate for the same JS context. If not, then we throw an exception because this could lead to serious trouble.

Also, we update the defaults and constructors only if new ones were provided.
2016-05-06 15:40:35 -07:00
Ari Lazier 477f7b1f33 add hook for detecting file format upgrade 2016-05-05 19:39:50 -07:00
Ari Lazier 87c9dda321 add hook for detecting file format upgrade 2016-05-05 19:39:50 -07:00
Ari Lazier 28a7efcd1b add test for current date 2016-05-05 17:36:48 -07:00
Ari Lazier 7b3fa3bc42 fix leaking realm 2016-05-05 17:10:56 -07:00
Ari Lazier 76c2d3cd54 fix leaking realm 2016-05-05 17:10:56 -07:00
Ari Lazier 3b24a4270e fix for object link nullification 2016-05-05 14:08:58 -07:00
Ari Lazier 7a6141e066 fix for object link nullification 2016-05-05 14:08:58 -07:00
Ari Lazier 4daa1ff5a1 upgrade to latest core and object store 2016-05-05 13:09:07 -07:00
Ari Lazier 54fede2715 upgrade to latest core and object store 2016-05-05 13:09:07 -07:00
Thomas Goyne 56def7daa0 Merge pull request #65 from realm/tg/timestamp
Update to core 0.100.0
2016-05-05 10:25:06 -07:00
Thomas Goyne 507882d663 Update to core 0.100.1 2016-05-05 10:19:48 -07:00
Thomas Goyne 25d245deda Use erase-remove_if in RealmCoordinator::unregister_realm() 2016-05-04 10:21:44 -07:00
Scott Kyle 24dab1e8d7 Heed v8 warning in Node v6 from v8::Template::Set 2016-05-04 02:14:50 -07:00
Ari Lazier 513c0fee77 Merge pull request #416 from realm/al-ignored
Allow setting of non-persisted properties
2016-05-03 13:47:44 -07:00
Ari Lazier d26924e2f9 allow setting of non-persisted properties 2016-05-03 13:05:48 -07:00
Scott Kyle c8e7ddc3af [0.12.0-rc] Bump version 2016-05-03 12:06:15 -07:00
Scott Kyle 18a4d66903 Explicitly stop the RPCWorker in RPCServer destructor 2016-05-03 12:06:15 -07:00
Scott Kyle 32219cf0a3 Clear protected value maps in RPCServer destructor 2016-05-03 11:42:37 -07:00
Scott Kyle 741db2037f Merge pull request #407 from realm/sk-chrome-migration
All tests now pass in Chrome debug mode (including migration)
2016-05-02 16:19:09 -07:00
Ari Lazier 6e4a7f1019 remove extraneous quote 2016-05-02 12:57:15 -07:00
Ari Lazier 8eef37a46f remove extraneous quote 2016-05-02 12:57:15 -07:00
Ari Lazier bf488274a3 improve error message when specifying invalid schema 2016-05-02 12:45:42 -07:00
Ari Lazier 0d1b22b10d improve error message when specifying invalid schema 2016-05-02 12:45:42 -07:00
Scott Kyle e8cd20d7bb Use RPC callback mechanism for writes and listeners
The callbacks are stored by their id in the RPCServer so they are properly uniqued. This prevents the same callback from being added multiple times as a change listener.
2016-05-02 12:41:53 -07:00
Scott Kyle 889b762566 Allow protected values to be empty
This makes them much more friendly to being put inside of STL containers, like maps.
2016-05-02 12:33:20 -07:00
Scott Kyle dd23c66e69 Address some PR feedback with more comments 2016-05-01 14:35:18 -07:00
Scott Kyle 32a8a2ed72 Make migration tests work in Chrome debug mode
All realm operations for the RPC are now done in their own thread so it can be allowed to block on waiting for callback results. The recursive and multi-threaded nature of this makes it pretty tricky, but it works!
2016-04-29 13:55:49 -07:00
Ari Lazier 2b6b0b97f4 Merge pull request #406 from realm/al-workspace
Add workspace and clean up xcproject layout
2016-04-29 13:53:26 -07:00
Ari Lazier 5a9e24cb06 tab to space 2016-04-29 13:11:19 -07:00
Ari Lazier 0c05259558 remove old umbrella header 2016-04-29 12:58:25 -07:00
Ari Lazier c493a8070b add workspace and clean up xcproject layout 2016-04-29 12:00:40 -07:00
Scott Kyle 85919dc66f Fix realm.schema property in Chrome debug mode 2016-04-29 11:16:10 -07:00
Ari Lazier 2b35360117 add readOnly property 2016-04-28 15:50:43 -07:00
Ari Lazier b9b3812c86 support for read-only realms 2016-04-28 15:42:28 -07:00
Ari Lazier a2ed550dde Merge pull request #383 from realm/al-migration
Basic data migrations
2016-04-28 15:40:27 -07:00
Ari Lazier 2c85f032d9 compare non-existent properties to undefined 2016-04-28 13:21:30 -07:00
Ari Lazier af9b54074e pr feedback 2016-04-28 13:03:38 -07:00
Ari Lazier 79446f957a test and bug fixes 2016-04-28 12:44:48 -07:00
Ari Lazier cff099a4af tests and bugfixes 2016-04-28 12:16:16 -07:00
Scott Kyle 850e3a4090 Add validate_read() check to Results::set_live()
If the Results is detached, then this can cause a crash.
2016-04-28 09:39:53 -07:00
Scott Kyle 041530ee72 Add validate_read() check to Results::set_live()
If the Results is detached, then this can cause a crash.
2016-04-28 09:39:53 -07:00
Scott Kyle cf5112467c Fix InvalidSchemaVersionException message 2016-04-27 14:00:34 -07:00
Scott Kyle 0c4dfcb914 Fix InvalidSchemaVersionException message 2016-04-27 14:00:34 -07:00
Scott Kyle d4d5e28d26 Improve error message for non-object ObjectSchema 2016-04-27 14:00:14 -07:00
Scott Kyle ca87f5a3e0 Fix Node crash from calling function with empty this 2016-04-27 10:42:42 -07:00
Ari Lazier 8602787fc9 add schema getters 2016-04-27 08:31:05 -07:00
Ari Lazier fea0b69865 add support for non-memmber functions 2016-04-27 08:30:59 -07:00
Ari Lazier 17e5946af4 support for data migrations 2016-04-27 08:30:59 -07:00
Ari Lazier 588bbc327a remove un-needed usings 2016-04-26 17:40:56 -07:00
Ari Lazier 6e93d85420 pr fixes 2016-04-26 16:59:03 -07:00
Ari Lazier 27d973151f pr fixes 2016-04-26 16:59:03 -07:00
Ari Lazier cec8667e35 create RealmObject class and make isValid a member 2016-04-26 16:30:04 -07:00
Ari Lazier b59784670b create RealmObject class and make isValid a member 2016-04-26 16:30:04 -07:00
Ari Lazier 988f723f49 remove unnecessary catch block 2016-04-21 13:38:10 -07:00
Thomas Goyne 273db05605 Fix the initial ref count for WeakRealmNotifier
Adding the run loop source to the run loop retains it, so the initial refcount
should be 0, not 1.
2016-04-20 15:41:05 -07:00
Ari Lazier 75d8f5b759 bugfix for empty results, fix for realm.isValid 2016-04-19 17:29:34 -07:00
Ari Lazier 4d8d1d96e4 api to check if object has been deleted 2016-04-19 17:29:34 -07:00
Ari Lazier 3509caedd5 bugfix for empty results, fix for realm.isValid 2016-04-19 17:29:34 -07:00
Ari Lazier 6072061463 api to check if object has been deleted 2016-04-19 17:29:34 -07:00
Scott Kyle 2a58862070 Add test script for Node 2016-04-19 14:10:10 -07:00
Scott Kyle 8e5afeccc9 Fix another crash involving protected values 2016-04-19 03:58:23 -07:00
Scott Kyle 541791fd85 Fix crash by properly protecting JSC values
The previous implementation was lazy and ended up unprotecting values due to the move constructor being defaulted.
2016-04-19 03:18:02 -07:00
Scott Kyle 8ff23b5411 Fix build issues on Android
GCC was more strict with how we handled some types.
2016-04-18 18:30:55 -07:00
Scott Kyle fc49470b3c Fix for failing nested transaction test 2016-04-18 15:11:56 -07:00
Scott Kyle a0424c6600 Fix some styling of exception handling in JS wrappers 2016-04-18 15:11:36 -07:00
Scott Kyle 4731610a58 Merge branch 'master' into sk-node
* master:
  add keypath tests
  pr feedback, changelog
  typo
  bug fix
  tests
  support keypath comparisons for types that support it
  support for null queries
  don't require optional or link properties when creating objects
  [0.11.1] Bump version
  Update CHANGELOG with 0.11.1 fixes
  Update changelog script
  Remove changes_available implementation that asserts
  Get correct path to adb from Android Studio
  add some simple tests for Realm.write
  Update apps to use React Native 0.22
2016-04-18 14:19:06 -07:00
Scott Kyle 1ca5a43982 Revert TValue to ValueType, etc. 2016-04-18 12:18:13 -07:00
Scott Kyle 49e2b54151 Convert some more camelCase in js_realm.hpp 2016-04-18 12:17:45 -07:00
Scott Kyle 5c56a99403 Split up JS abstractions into type-specific files 2016-04-18 01:15:54 -07:00
Scott Kyle d57483c675 Rename js_object.hpp -> js_realm_object.hpp 2016-04-18 01:14:48 -07:00
Scott Kyle 10f08747e7 Rename remained camelCase to snake_case
And fix some minor build warnings along the way.
2016-04-18 01:01:04 -07:00
Scott Kyle 60a3cd4399 Remove unused js_schema.cpp 2016-04-17 22:33:18 -07:00
Scott Kyle a5bf9ed8dd Define most of jsc::ObjectWrap separately 2016-04-17 22:12:23 -07:00
Scott Kyle 5ed2c3cf25 Define most of node::ObjectWrap separately 2016-04-17 22:00:06 -07:00
Scott Kyle 7c97a1752e Remove need for BaseClassDefinition 2016-04-16 16:46:16 -07:00
Scott Kyle 999900ff00 Fix script that copies query-tests.json 2016-04-16 16:30:02 -07:00
Scott Kyle 2641e5a2a1 Move JSC object accessor code into header 2016-04-15 16:10:25 -07:00
Scott Kyle 133289ad85 All tests now pass on Node 2016-04-15 16:06:44 -07:00
Ari Lazier bd4088ce91 key templates off explicitly defined classes rather than the internal type 2016-04-15 13:47:01 -07:00
Ari Lazier 760126f0d7 public before private 2016-04-15 11:59:10 -07:00
Ari Lazier e8ca5ff92e ObjectClass -> ClassDefinition 2016-04-15 10:50:15 -07:00
Ari Lazier c817ac7eac create -> create_instance 2016-04-14 11:19:01 -07:00
Ari Lazier 84559316d8 compact property getter/setter types 2016-04-14 11:06:17 -07:00
Ari Lazier 0b2a75bdc3 use different naming convention for extracted template types 2016-04-14 10:54:43 -07:00
Scott Kyle c0c65ad620 Make all JSC tests pass again 2016-04-13 03:21:18 -07:00
Scott Kyle 05c432deb1 WIP Node support
The JS engine details are mostly abstracted away. This breaks JSC support until the rest of the pieces are in place. The Node version builds and runs, but crashes when creating a Realm object.
2016-04-12 11:53:30 -07:00
Ari Lazier 4aed9135b8 add keypath tests 2016-04-12 11:01:33 -07:00
Ari Lazier 3e34d2355f pr feedback, changelog 2016-04-12 08:13:29 -07:00
Ari Lazier 1afa844aa4 pr feedback, changelog 2016-04-12 08:13:29 -07:00
Ari Lazier c874c15e75 typo 2016-04-11 16:37:18 -07:00
Ari Lazier 9f4b9410a5 typo 2016-04-11 16:37:18 -07:00
Ari Lazier e26b044fbe bug fix 2016-04-11 16:03:36 -07:00
Ari Lazier 321ddc39e1 bug fix 2016-04-11 16:03:36 -07:00
Ari Lazier 0c1ade2b8e tests 2016-04-11 16:01:51 -07:00
Ari Lazier b542fe8c7b tests 2016-04-11 16:01:51 -07:00
Ari Lazier adc4a970fd support keypath comparisons for types that support it 2016-04-11 15:03:47 -07:00
Ari Lazier 3a174161d7 support keypath comparisons for types that support it 2016-04-11 15:03:47 -07:00
Ari Lazier 6a05db6aed support for null queries 2016-04-11 13:58:52 -07:00
Ari Lazier 8a77099685 support for null queries 2016-04-11 13:58:52 -07:00
Ari Lazier 805fdc63a7 don't require optional or link properties when creating objects 2016-04-01 11:00:53 -07:00
Ari Lazier 4ac022ecc9 don't require optional or link properties when creating objects 2016-04-01 11:00:53 -07:00
Ari Lazier f80bcd882d convert schema parsing 2016-03-30 16:14:48 -07:00
Ari Lazier 61685dee83 use string wrapper, finish realm constructor conversion 2016-03-30 14:56:33 -07:00
Ari Lazier 29213f1d87 wrap list properties 2016-03-30 14:18:44 -07:00
Ari Lazier c249eea505 wrap realm properties 2016-03-30 13:48:24 -07:00
Ari Lazier 2baec5bec6 move static methods and constructor 2016-03-30 13:09:05 -07:00
Ari Lazier 0282e98232 move exception handling to method wrapper 2016-03-30 11:55:13 -07:00
Ari Lazier 58d50bb3c5 refactor realm 2016-03-30 10:23:15 -07:00
Ari Lazier 016d723731 tmp 2016-03-30 09:16:38 -07:00
Ari Lazier 5b2a59d5c6 converted BindingContext 2016-03-29 16:17:57 -07:00
Scott Kyle 2c0d8f8cef [0.11.1] Bump version 2016-03-29 15:30:39 -07:00
Ari Lazier e7d954a727 wrap all types in a single type and use static class methods 2016-03-29 14:12:27 -07:00
Ari Lazier b4990fbbff convert more of Realm 2016-03-29 13:36:01 -07:00
Scott Kyle 0f9f450062 Remove changes_available implementation that asserts
This gets called when a Realm changes on another thread, but is called on the correct thread on iOS. It doesn't look like it will be called on Android, so we can unofficially support iOS accessing Realms from multiple bindings for now.

Fixes #352
2016-03-29 12:59:06 -07:00
Ari Lazier 9626842f8e start refactoring realm 2016-03-28 13:21:36 -07:00
Ari Lazier 20bac8e2c7 refactor list 2016-03-25 12:13:49 -07:00
Scott Kyle daa2948028 Move RealmJS.xcodeproj to be under src/ios 2016-03-23 13:39:12 -07:00
Scott Kyle 0e74362e4c Merge pull request #340 from realm/sk-collection
Make List and Results inherit from Collection
2016-03-21 15:27:18 -07:00
Ari Lazier 4b2e47a861 support encrypted realm when getting schemaVersion 2016-03-21 13:34:12 -07:00
Ari Lazier 836cfc1c6b add chrome debugging, use -1 for not versioned 2016-03-21 13:34:12 -07:00
Ari Lazier 324c3d702b support getting the schema version from unopened realms 2016-03-21 13:34:11 -07:00
Ari Lazier c32dff40a2 case insensitive searches 2016-03-21 13:32:03 -07:00
Ari Lazier 8b986f031c case insensitive searches 2016-03-21 13:32:03 -07:00
Scott Kyle b5ce02c0ce Make List and Results inherit from Collection
This will allow for easier type checking, documentation, etc.
2016-03-20 11:51:16 -07:00
Ari Lazier 7ef25e9e14 its a struct 2016-03-18 20:04:30 -07:00
Ari Lazier 693df136d5 its a struct 2016-03-18 20:04:30 -07:00
Ari Lazier f186c3d1b7 android fixes for latests object store 2016-03-18 19:58:45 -07:00
Ari Lazier 67f2f40297 android fixes for latests object store 2016-03-18 19:58:45 -07:00
Ari Lazier b2e4d93732 support for indexed properties 2016-03-18 16:50:55 -07:00
Ari Lazier 7fe2f69b8c latest object store 2016-03-18 16:14:11 -07:00
Ari Lazier b02f64e727 latest object store 2016-03-18 16:14:11 -07:00
Thomas Goyne aaccb8992f Merge pull request #51 from realm/tg/indexable
Bool and NSDate properties can be indexed.
2016-03-18 15:33:56 -07:00
Scott Kyle 301214dd39 Fix List splice method to be spec compatible
If the second argument is omitted, then all objects after the provided index should be removed. This is the same behavior as Array.prototype.splice.
2016-03-17 14:48:39 -07:00
Scott Kyle 5d872d6233 Remove accidentally included files in npm package
The 0.11.0-rc was bloated by lots of unnecessary build products and other miscellaneous files.
2016-03-16 16:48:04 -07:00
Scott Kyle 7feadb27b2 Fix ARM hook into JSGlobalContextCreateInGroup
We were loading into the program counter, which is not good in THUMB mode, so we now instead load into R3, since it's a temp register not used by this function (it only takes two arguments). Also, when building this module in THUMB mode itself, we needed to clear the ARM instruction cache, which wasn't needed when switching from THUMB to ARM mode.
2016-03-15 13:57:09 -07:00
Nabil Hachicha 53c28dca16 fixes gcc optimisation causing RealmCoordinator to use a empty/default path
fix indentation
2016-03-14 16:42:52 -07:00
Nabil Hachicha 48d8b6a2e7 fixes #329 2016-03-14 16:09:22 -07:00
Nabil Hachicha 92f3314a0b fixes #329 2016-03-14 16:09:22 -07:00
Ari Lazier 991c25865a fix for reload in example 2016-03-13 10:09:53 -07:00
Ari Lazier e459194bfd fix for reload in example 2016-03-13 10:09:53 -07:00
Ari Lazier aa08d25ed0 Merge pull request #305 from realm/al-object-store
Latest object store changes and core
2016-03-10 16:03:12 -08:00
Thomas Goyne c65d536573 Remove Realm::m_in_transaction and use the value from the SharedGroup
There were a bunch of places where m_in_transaction was not being updated
correctly when exceptions were thrown, and this eliminates that as a possible
problem entirely.
2016-03-07 13:18:20 -08:00
Thomas Goyne b7283be7d1 Merge pull request #52 from realm/tg/core-0.97.0
Update to core 0.97.0
2016-03-07 13:13:59 -08:00
Thomas Goyne af0db71187 Strip all trailing whitespace from files 2016-03-07 12:47:02 -08:00
Thomas Goyne c94770be81 Update to core 0.97.0 2016-03-07 12:46:36 -08:00
Scott Kyle 1a127b425b Merge pull request #289 from realm/sk-accept-constructor
Accept constructor in create() and objects() methods
2016-03-07 12:23:26 -08:00
Ari Lazier 6b523bab09 forward declare property 2016-03-04 07:28:10 -08:00
Ari Lazier 21a4e2543e forward declare property 2016-03-04 07:28:10 -08:00
Ari Lazier f7927f189c use core to_string 2016-03-04 07:09:49 -08:00
Ari Lazier 42cb078a8c use core to_string 2016-03-04 07:09:49 -08:00
Ari Lazier eb7f213c93 pr fixes 2016-03-03 16:49:06 -08:00
Ari Lazier 987978fd4e pr fixes 2016-03-03 16:49:06 -08:00
Ari Lazier d07f82b3ec fixes for android 2016-03-03 14:56:18 -08:00
Ari Lazier 641eb37b2c fixes for android 2016-03-03 14:56:18 -08:00
Scott Kyle 17eb6bcbb5 submodule fixes 2016-03-03 14:48:41 -08:00
Ari Lazier 4923d7d953 object store fixes for js binding 2016-03-03 14:45:44 -08:00
Ari Lazier 548d700ffe object store fixes for js binding 2016-03-03 14:45:44 -08:00
Ari Lazier 7802a9e976 merge latest object store 2016-03-03 14:15:54 -08:00
Ari Lazier 05429a8163 merge latest object store 2016-03-03 14:15:54 -08:00
Ari Lazier 5f61fd970c support relative paths when opening realms 2016-03-03 13:33:49 -08:00
Scott Kyle 42cdf9daad Disallow non-constructors to have schema property
Non-constructor functions (e.g. arrow functions and native functions) as well as regular objects should not be allowed as valid schema hosts. Neither of these cases were ever actually tested or used anywhere.
2016-03-03 02:52:15 -08:00
Scott Kyle 85832f0f02 Rename some functions according to PR feedback 2016-03-03 02:49:37 -08:00
kishikawa katsumi 9045d79453 Bool and NSDate properties can be indexed.
Core supports indexing Bool and NSDate properties.
realm-java also supports indexing Bool and NSDate properties.
It is better to align the specification with realm-java.
2016-03-02 13:20:29 -08:00
Scott Kyle 4a81b091cb Accept constructor in create() and objects() methods
This will help the linter prevent spelling mistakes and make some code more easily readable.

Resolves #233
2016-03-01 00:46:03 -08:00
Scott Kyle 3858ede7c7 Rename RJSObjectSetProperty to RJSValidatedSetProperty 2016-02-29 12:37:28 -08:00
Scott Kyle 5a9ad4f2b9 Rename InvalidConstructor to UncallableConstructor 2016-02-29 12:35:12 -08:00
Scott Kyle 44a29d8dd4 Expose List and Results constructors into JS 2016-02-29 03:24:58 -08:00
Scott Kyle 154422a3d1 Make realm instances pass instanceof check 2016-02-29 03:24:58 -08:00
Ari Lazier e495cc4685 add encryption support 2016-02-26 11:08:59 -08:00
Thomas Goyne b7b2822082 Make it possible to disable the commit notifier background worker
This makes it much easier to write tests which test the work done on the
background thread.
2016-02-25 11:19:00 -08:00
Thomas Goyne cfc88b6fd5 Rename CachedRealm to WeakRealmNotfier 2016-02-24 16:58:11 -08:00
Thomas Goyne 143cc3b696 Fix compilation with GCC 4.9
4.9 does not correctly implement C++14 aggregate initialization.
2016-02-24 16:58:11 -08:00
Thomas Goyne 99037a7c72 Add an AtomicSharedPtr implementation for gcc 4.9 2016-02-24 16:58:11 -08:00
Thomas Goyne 1e35324d97 Avoid holding locks while calling transaction::advance()
It can call user code due to change notifications, which leads to
deadlocks if that code then tries to add async queries (and advancing is
a potentially expensive operation, so doing it while holding a lock
inhibits parallelism anyway).
2016-02-24 16:58:11 -08:00
Thomas Goyne 8284340729 Remove redundant check in RealmCoordinator::advance_helper_shared_group_to_latest() 2016-02-24 16:58:11 -08:00
Thomas Goyne 4e18a99dfd Update some out-of-date comments 2016-02-24 16:58:10 -08:00
Thomas Goyne aa67216574 Write a much better comment about thread stuff for AsyncQuery 2016-02-24 16:58:10 -08:00
Thomas Goyne ad46e307a2 Update the comments for Realm::Internal 2016-02-24 16:58:10 -08:00
Thomas Goyne 1430fcf474 Rename AsyncFriend to Interal 2016-02-24 16:58:10 -08:00
Thomas Goyne c46a2a34de Fix typos and minor errors in comments 2016-02-24 16:58:10 -08:00
Thomas Goyne db7d6fa2a8 Don't hold onto the tableview between runs of async queries
Updating the table view in advance_read() can be very expensive, and the
updated data is never actually used.
2016-02-24 16:58:10 -08:00
Thomas Goyne a95eb50915 Don't create background queries for Results on threads without runloops 2016-02-24 16:58:09 -08:00
Thomas Goyne 3e90c30571 Add more tests and fix bugs 2016-02-24 16:58:09 -08:00
Thomas Goyne 8c4f2a4f30 Reduce the scope of class friendships 2016-02-24 16:58:09 -08:00
Thomas Goyne 13e1054553 Don't continue to run queries in the background if the result is unused 2016-02-24 16:58:09 -08:00
Thomas Goyne 934263f76a Automatically create the async query when converting to a TableView 2016-02-24 16:58:09 -08:00
Thomas Goyne 8f668fdf09 Use a single AsyncQuery per Results regardless of number of callbacks added 2016-02-24 16:58:08 -08:00
Thomas Goyne d165458601 Add support for running queries asynchronously 2016-02-24 16:58:08 -08:00
Thomas Goyne bceec93a69 Update to core 0.96.2 2016-02-23 15:01:35 -08:00
Tim Anglade 7cc2f69736 Merge pull request #264 from realm/km-js-fixlicense
License update
2016-02-21 18:56:59 -08:00
Nabil Hachicha 9bcebfaf29 PR feedback 2016-02-19 22:50:30 +00:00