Fix assertion failure in nix-env
$ nix-env -f ~/Dev/nixops/ -iA foo nix-env: src/libexpr/eval.hh:57: void nix::Bindings::push_back(const nix::Attr&): Assertion `size_ < capacity' failed. Aborted
This commit is contained in:
		
							parent
							
								
									a5e2c8e560
								
							
						
					
					
						commit
						c2a8b5c42d
					
				
					 2 changed files with 8 additions and 4 deletions
				
			
		|  | @ -132,6 +132,8 @@ static void getAllExprs(EvalState & state, | |||
|             Value & vArg(*state.allocValue()); | ||||
|             state.getBuiltin("import", vFun); | ||||
|             mkString(vArg, path2); | ||||
|             if (v.attrs->size() == v.attrs->capacity()) | ||||
|                 throw Error(format("too many Nix expressions in directory ‘%1%’") % path); | ||||
|             mkApp(*state.allocAttr(v, state.symbols.create(attrName)), vFun, vArg); | ||||
|         } | ||||
|         else if (S_ISDIR(st.st_mode)) | ||||
|  | @ -160,7 +162,7 @@ static void loadSourceExpr(EvalState & state, const Path & path, Value & v) | |||
|        ~/.nix-defexpr directory that includes some system-wide | ||||
|        directory). */ | ||||
|     if (S_ISDIR(st.st_mode)) { | ||||
|         state.mkAttrs(v, 16); | ||||
|         state.mkAttrs(v, 1024); | ||||
|         state.mkList(*state.allocAttr(v, state.symbols.create("_combineChannels")), 0); | ||||
|         StringSet attrs; | ||||
|         getAllExprs(state, path, attrs, v); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue