cdt/cdt_6_0_x/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIMemory.java
changeset 105 fbceb3d6fb44
parent 37 c2bce6dd59e7
equal deleted inserted replaced
104:b23e845b9366 105:fbceb3d6fb44
   438 					@Override
   438 					@Override
   439 					protected void handleSuccess() {
   439 					protected void handleSuccess() {
   440 						// Figure out which memory area was modified
   440 						// Figure out which memory area was modified
   441 						IExpressionDMAddress expression = getData();
   441 						IExpressionDMAddress expression = getData();
   442 						final int count = expression.getSize();
   442 						final int count = expression.getSize();
   443 						IAddress expAddress = expression.getAddress();
   443 						Object expAddress = expression.getAddress();
   444 						final Addr64 address;
   444 						final Addr64 address;
   445 						if (expAddress instanceof Addr64)
   445 						if (expAddress instanceof Addr64)
   446 							address = (Addr64) expAddress;
   446 							address = (Addr64) expAddress;
       
   447 						else if (expAddress instanceof IAddress)
       
   448 							address = new Addr64(((IAddress)expAddress).getValue());
   447 						else
   449 						else
   448 							address = new Addr64(expAddress.getValue());
   450 							return; // not a valid memory address
   449 
   451 
   450 						final IMemoryDMContext memoryDMC = DMContexts.getAncestorOfType(context, IMemoryDMContext.class);
   452 						final IMemoryDMContext memoryDMC = DMContexts.getAncestorOfType(context, IMemoryDMContext.class);
   451 						getMemoryCache(memoryDMC).refreshMemory(memoryDMC, address, 0, 1, count,
   453 						getMemoryCache(memoryDMC).refreshMemory(memoryDMC, address, 0, 1, count,
   452 								new RequestMonitor(getExecutor(), null));
   454 								new RequestMonitor(getExecutor(), null));
   453 						}
   455 						}