- 0bfbe05 Reorganize the code, notably move BindingDataNodeIter to InjectorStorage. by Marco Poletti · 10 years ago
- 2a1a581 Factor out a Vector class from ComponentStorage. by Marco Poletti · 10 years ago
- 9491d65 Switch to the lowercase_with_underscores style for variables and fields (before some used the lowerCamel case instead). by Marco Poletti · 10 years ago
- b829323 Rename singleton->object throughout, plus other minor comment fixes. by Marco Poletti · 10 years ago
- 85aea00 Rename typeRegistry->bindings, typeRegistryForMultibindings->multibindings throughout. by Marco Poletti · 10 years ago
- eedc2a5 Remove the multibindingDeps vector from ComponentStorage. Each MultibindingData stores the deps anyway. by Marco Poletti · 10 years ago
- 93372ce Inline trivial methods of ComponentStorage into component.defn.h. by Marco Poletti · 10 years ago
- 224bd9c First part of the refactoring of ComponentStorage, mostly moving logic into InjectorStorage. by Marco Poletti · 10 years ago
- 4ac3c8e Factor common code in individual bindings in component_storage.defn.h into a new constructObject() method in InjectorStorage. Now the allocator can be private. by Marco Poletti · 10 years ago
- 5c913af Split out the allocator part of InjectorStorage into a separate FixedSizeAllocator class. by Marco Poletti · 10 years ago
- 58e2ec2 First implementation of binding compression; reduces injection time by ~35% when using virtual destructors. by Marco Poletti · 10 years ago
- 050d600 Optimize SemistaticGraph using shallow copy semantics to share data with the NormalizedComponent. Decreases injection time by ~15%. by Marco Poletti · 10 years ago
- 5c1bf6d SemistaticGraph now stores internal IDs using a SemistaticGraphInternalNodeId struct. This is in preparation of the upcoming SemistaticGraph optimization. by Marco Poletti · 10 years ago
- 181cbe2 Changes in preparation of making SemistaticGraph non-copyable. by Marco Poletti · 10 years ago
- 5200558 Make InjectorStorage and NormalizedComponentStorage non-movable/copyable, in preparation of future optimizations. by Marco Poletti · 10 years ago
- 8fb03fa Move the component normalization logic into InjectorStorage, and refactor InjectorStorage to prepare for the StaticMap optimization. by Marco Poletti · 10 years ago
- 4e9594b InjectorStorage now stores the type registry (for bindings and multibindings) separately, instead of storing a NormalizedComponentStorage. This is in preparation for future optimizations. by Marco Poletti · 10 years ago
- a0eda10 Make SemistaticGraph compile in debug mode when using a type different from TypeId as key. by Marco Poletti · 10 years ago
- d09ec5b Document that the default constructor of Semistatic{Map,Graph} constructs an invalid object. Remove the default constructor of NormalizedComponentStorage. by Marco Poletti · 10 years ago
- 757c78f Move code from semistatic_map.cpp to semistatic_map.templates.h. Add a IN_FRUIT_CPP_FILE to ensure that .templates.h files are only included by Fruit cpp files. by Marco Poletti · 10 years ago
- cdcf729 The Injector constructor with 2 parameters now takes the NormalizedComponent as const& instead of value. by Marco Poletti · 10 years ago
- 7ad3862 Re-organize the files in include/fruit/impl into subdirectories. by Marco Poletti · 10 years ago
- faa258c Fix Clang compile error. by Marco Poletti · 10 years ago
- 71c36de Fix some warnings in release mode, and set debug-only compiler flags properly. by Marco Poletti · 10 years ago
- 7f35b65 Re-organize the source code. Merge component.utils.h into component_impl.h. Now using .defn files for template/inline definitions. by Marco Poletti · 10 years ago
- fbcb38b Revert "Another attempt to increase performance by having static storage in the injector." by Marco Poletti · 10 years ago
- f50f56f Another attempt to increase performance by having static storage in the injector. by Marco Poletti · 10 years ago
- b1d265c Use the run-time dependency graph to save hash table lookups. Saves 10-15% of injection time. by Marco Poletti · 10 years ago
- 633a389 Add a SemistaticGraph class and use it to re-implement NormalizedComponentStorage. This is in preparation of a following optimization, for now it's just slower. by Marco Poletti · 10 years ago
- bd971eb Rename BindingDataForMultibinding->MultibindingData, BindingDataVectorForMultibinding->NormalizedMultibindingData. by Marco Poletti · 10 years ago
- a49c9ad Store dependencies in BindingData, in preparation for the next optimization. by Marco Poletti · 10 years ago
- 2d81d25 Remove the BindingData-specific optimization from SemistaticMap (even though this decreases performance) in preparation for later optimizations. by Marco Poletti · 10 years ago
- 2050c36 SemistaticMap now uses a random seed for the hash generation instead of using seed 0. by Marco Poletti · 10 years ago
- 50291bc Slight optimization for the memory allocation in the injector, saving 1-2% of injection time. by Marco Poletti · 10 years ago
- 91d702c Remove SemistaticMap::count(), it's never used. by Marco Poletti · 10 years ago
- 4f70da2 Minor changes, simplify/remove unreachable or redundant code. by Marco Poletti · 10 years ago
- 5bac985 Drop support for functions as providers (only lambdas are supported now). De-templatize SemistaticMap, store typeInfo + is_created + create/singleton in 2 machine words. Gives a ~10% reduction in injection time. by Marco Poletti · 10 years ago
- b1e6c79 Store a vector of pairs instead of two separate vectors in SemistaticMap. This slightly improves injection performance. by Marco Poletti · 10 years ago
- 943c382 Restructure/Rewrite the metaprogramming code. Now using None as an element in lists to speed up removals. by Marco Poletti · 10 years ago
- a25a1e7 Use exit(1) instead of abort() for runtime errors. by Marco Poletti · 10 years ago
- ac0fe96 Fix compilation warnings/issues with GCC 4.9.1. by Marco Poletti · 10 years ago
- 21802c6 Inline the ensureConstructed() method, saving ~15% of injection time. by Marco Poletti · 10 years ago
- 1fd2649 getMultibindings now returns a vector instead of a set. by Marco Poletti · 10 years ago
- d9d60db Reduce the preprocessed size of fruit.h by moving big includes to .cpp files. by Marco Poletti · 10 years ago
- 3f0a568 Skip the destruction of trivially destructible types. by Marco Poletti · 10 years ago
- 06a1d1e Add a custom map implementation, which improves injection performance by ~20%. This also removes the dependency on the sparsehash library. by Marco Poletti · 10 years ago
- c207ede Use lambdas instead of inline functions for comparators; this helps the compiler inline them. by Marco Poletti · 10 years ago
- 183fe6d Avoid a copy when constructing an InjectorStorage from a NormalizedComponentStorage&&. by Marco Poletti · 10 years ago
- b289de1 Turn NormalizedComponentStorage::install() into a static method. by Marco Poletti · 10 years ago
- 42a02a1 Add the notion of NormalizedComponent, add a two-argument constructor of Injector that takes a NormalizedComponent and a Component. by Marco Poletti · 10 years ago
- 4f57c29 Remove unused function. by Marco Poletti · 10 years ago
- 3ecb041 Prepare support for NormalizedComponent: now InjectorStorage is constructed from a NormalizedComponentStorage instead of a NormalizedComponentStorage::BindingVectors. by Marco Poletti · 10 years ago
- 492b1ba Split NormalizedComponentStorage out of InjectorStorage. by Marco Poletti · 10 years ago
- 9341b25 Remove ComponentStorage::check() and InjectorStorage::check(), replace with assertions or if statements as appropriate. by Marco Poletti · 10 years ago
- 147d290 Insert the bindings in the hash table using a range insert instead of one at a time. by Marco Poletti · 10 years ago
- 4b59b0a Revert "Use sorted vectors instead of hash tables in the injector." Hash tables are slightly faster. by Marco Poletti · 10 years ago
- d00d693 Use sorted vectors instead of hash tables in the injector. by Marco Poletti · 10 years ago
- c8e80a5 Refactor the access to bindings in InjectorStorage, in preparation of the change of representation. by Marco Poletti · 10 years ago
- 130624a Fix performance bug that caused a copy in install() even when a temporary was passed. by Marco Poletti · 10 years ago
- b35bcb4 Change the representation of a BindingData, now occupies 2 pointers instead of 4. by Marco Poletti · 10 years ago
- d238be8 Use (unsorted) vectors in ComponentStorage instead of hash tables. by Marco Poletti · 10 years ago
- fdbfcbe Split InjectorStorage out of ComponentStorage. by Marco Poletti · 10 years ago
- 494514c Depend on the sparsehash lib to speed up hashing by ~25%. This dependency is optional and can be disabled with -DFRUIT_NO_SPARSE_HASH. by Marco Poletti · 10 years ago
- b5cadcf Add move constructors and store the ComponentStorage in a unique_ptr, to avoid copies and also keep the move cost low. by Marco Poletti · 10 years ago
- 09fa583 Optimize allocations by allocating a single chunk of memory in the injector. by Marco Poletti · 10 years ago
- 6449dae Make RTTI optional. by Marco Poletti · 10 years ago
- a88e1d1 Remove support for injection scopes. by Marco Poletti · 10 years ago
- ec857eb ComponentStorage: cache the set of multibindings (if not empty). by Marco Poletti · 10 years ago
- 6917d7e Fix a bug in ComponentStorage where multibindings were deleted after the bindings that they depended on. by Marco Poletti · 10 years ago
- 5d84929 Implement factory bindings. by Marco Poletti · 10 years ago
- be1d443 Eager injection no longer injects unreachable types. by Marco Poletti · 10 years ago
- 6c83bde Implement eager injection. by Marco Poletti · 10 years ago
- 65d8eb9 Implement multibindings. by Marco Poletti · 10 years ago
- 5c48390 Fix injection scopes: loop over all parents to determine the types to un-register in the child injector. Also remove useless comparisons of destroy operation. by Marco Poletti · 10 years ago
- d61b579 Implement injection scopes, plus some other changes: by Marco Poletti · 10 years ago
- c0db95e Rename Module->Component, UnsafeModule->ComponentStorage. by Marco Poletti · 10 years ago
- e66e1e7 Add cmake variables to allow overriding the installation directories. by Marco Poletti · 10 years ago
- e161e6a Build a shared library instead of a static one. by Marco Poletti · 10 years ago
- cf798fa Initial commit. by Marco Poletti · 10 years ago